├── .gitignore ├── .jazzy.yaml ├── .travis.yml ├── Example ├── Podfile ├── Podfile.lock ├── goSellSDKExample.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── xcshareddata │ │ └── xcschemes │ │ └── goSellSDKExample.xcscheme ├── goSellSDKExample.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── WorkspaceSettings.xcsettings └── goSellSDKExample │ ├── Cells │ ├── ColorTableViewCell.swift │ ├── CustomerTableViewCell.swift │ ├── DestinationTableViewCell.swift │ ├── FontTableViewCell.swift │ ├── GroupHeaderCell.swift │ ├── PaymentItemTableViewCell.swift │ ├── PlainAmountTableViewCell.swift │ ├── SavedCardCell.swift │ ├── SelectableCell.swift │ ├── ShippingTableViewCell.swift │ ├── TaxTableViewCell.swift │ └── TitleTableViewCell.swift │ ├── Controllers │ ├── BaseViewController.swift │ ├── CaseSelectionTableViewController.swift │ ├── ColorSelectionTableViewController.swift │ ├── CustomerViewController.swift │ ├── CustomersListViewController.swift │ ├── DestinationViewController.swift │ ├── ExampleViewController.swift │ ├── FontSelectionTableViewController.swift │ ├── ModalNavigationTableViewController.swift │ ├── PaymentItemViewController.swift │ ├── SavedCardsTableViewController.swift │ ├── SettingsTableViewController.swift │ ├── ShippingViewController.swift │ └── TaxViewController.swift │ ├── Extensions │ ├── Currency+Additions.swift │ ├── Decodable+Additions.swift │ ├── Encodable+Additions.swift │ ├── Measurement+Additions.swift │ ├── Notification.Name+Additions.swift │ ├── UIBlurEffect.Style+Additions.swift │ └── UIEdgeInsets+Additions.swift │ ├── Models │ ├── Color.swift │ ├── EnvironmentCustomer.swift │ ├── GroupHeaderCellModel.swift │ ├── Language.swift │ ├── PaymentItemTableViewCellModel.swift │ ├── PaymentItemsTableViewHandler.swift │ ├── PlainAmountTableViewCellModel.swift │ ├── Settings │ │ ├── AppearanceSettings.swift │ │ ├── DataSourceSettings.swift │ │ ├── GlobalSettings.swift │ │ └── Settings.swift │ └── TableViewCellModel.swift │ ├── Protocols │ ├── CaseSelectionTableViewControllerDelegate.swift │ ├── CustomerViewControllerDelegate.swift │ ├── CustomersListViewControllerDelegate.swift │ ├── DestinationViewControllerDelegate.swift │ ├── InputFieldObserver.swift │ ├── PaymentItemViewControllerDelegate.swift │ ├── SeguePresenter.swift │ ├── SettingsTableViewControllerDelegate.swift │ ├── ShippingViewControllerDelegate.swift │ └── TaxViewControllerDelegate.swift │ ├── Resources │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── gosell_icon_1024.png │ │ │ ├── gosell_icon_120-1.png │ │ │ ├── gosell_icon_120.png │ │ │ ├── gosell_icon_152.png │ │ │ ├── gosell_icon_167.png │ │ │ ├── gosell_icon_180.png │ │ │ ├── gosell_icon_20.png │ │ │ ├── gosell_icon_29.png │ │ │ ├── gosell_icon_40-1.png │ │ │ ├── gosell_icon_40-2.png │ │ │ ├── gosell_icon_40.png │ │ │ ├── gosell_icon_58-1.png │ │ │ ├── gosell_icon_58.png │ │ │ ├── gosell_icon_60.png │ │ │ ├── gosell_icon_76.png │ │ │ ├── gosell_icon_80-1.png │ │ │ ├── gosell_icon_80.png │ │ │ └── gosell_icon_87.png │ │ ├── Contents.json │ │ ├── background.imageset │ │ │ ├── 5840375-nissan-gtr-iphone-6-wallpaper.jpg │ │ │ └── Contents.json │ │ └── ic_checkmark.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_checkmark.png │ │ │ ├── ic_checkmark@2x.png │ │ │ └── ic_checkmark@3x.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ └── sampleAppleToken.txt │ ├── Supporting Files │ ├── AppDelegate.swift │ └── Info.plist │ ├── Utils │ ├── SerializationHelper.swift │ └── Serializer.swift │ └── goSellSDKExample.entitlements ├── Gemfile ├── Gemfile.lock ├── LICENSE ├── Podfile ├── Podfile.lock ├── README.md ├── docs ├── Classes.html ├── Classes │ ├── APIError.html │ ├── Acquirer.html │ ├── Address.html │ ├── AmountModificator.html │ ├── Authentication.html │ ├── Authorize.html │ ├── AuthorizeAction.html │ ├── AuthorizeActionResponse.html │ ├── CardVerification.html │ ├── Charge.html │ ├── Country.html │ ├── Currency.html │ ├── Customer.html │ ├── Destination.html │ ├── DestinationGroup.html │ ├── EmailAddress.html │ ├── ErrorDetail.html │ ├── PayButton.html │ ├── PaymentItem.html │ ├── PhoneNumber.html │ ├── Quantity.html │ ├── Receipt.html │ ├── Reference.html │ ├── Response.html │ ├── SavedCard.html │ ├── SecretKey.html │ ├── Session.html │ ├── Shipping.html │ ├── Source.html │ ├── SourceRequest.html │ ├── TapBlurStyle.html │ ├── TapSDKAPIError.html │ ├── TapSDKError.html │ ├── TapSDKKnownError.html │ ├── TapSDKUnknownError.html │ ├── Tax.html │ ├── Token.html │ ├── TokenizedCard.html │ ├── TrackingURL.html │ ├── TransactionDetails.html │ ├── Transfer.html │ ├── _ObjCMeasurement.html │ └── goSellSDK.html ├── Enums.html ├── Enums │ ├── AddressType.html │ ├── AmountModificatorType.html │ ├── Area.html │ ├── AuthenticationRequirer.html │ ├── AuthenticationStatus.html │ ├── AuthenticationType.html │ ├── AuthorizeActionStatus.html │ ├── AuthorizeActionType.html │ ├── CardVerificationStatus.html │ ├── ChargeStatus.html │ ├── Duration.html │ ├── ElectricCharge.html │ ├── ElectricCurrent.html │ ├── Energy.html │ ├── ErrorCode.html │ ├── Length.html │ ├── Mass.html │ ├── Measurement.html │ ├── Power.html │ ├── SDKAppearanceMode.html │ ├── SDKMode.html │ ├── SourceChannel.html │ ├── SourceObject.html │ ├── SourcePaymentType.html │ ├── SourceType.html │ ├── TAPSDKErrorType.html │ ├── TokenType.html │ ├── TransactionMode.html │ ├── URLStatus.html │ └── Volume.html ├── Extensions.html ├── Extensions │ ├── Address.html │ ├── PaymentOption.html │ ├── SeparateWindowRootViewController.html │ ├── TapBlurEffectStyle.html │ ├── TapFont.html │ ├── TapSerializationError.html │ └── TokenizedCard.html ├── Protocols.html ├── Protocols │ ├── SessionAppearance.html │ ├── SessionDataSource.html │ ├── SessionDelegate.html │ └── SessionProtocol.html ├── Typealiases.html ├── badge.svg ├── css │ ├── highlight.css │ └── jazzy.css ├── docsets │ ├── goSellSDK.docset │ │ └── Contents │ │ │ ├── Info.plist │ │ │ └── Resources │ │ │ ├── Documents │ │ │ ├── Classes.html │ │ │ ├── Classes │ │ │ │ ├── APIError.html │ │ │ │ ├── Acquirer.html │ │ │ │ ├── Address.html │ │ │ │ ├── AmountModificator.html │ │ │ │ ├── Authentication.html │ │ │ │ ├── Authorize.html │ │ │ │ ├── AuthorizeAction.html │ │ │ │ ├── AuthorizeActionResponse.html │ │ │ │ ├── CardVerification.html │ │ │ │ ├── Charge.html │ │ │ │ ├── Country.html │ │ │ │ ├── Currency.html │ │ │ │ ├── Customer.html │ │ │ │ ├── Destination.html │ │ │ │ ├── DestinationGroup.html │ │ │ │ ├── EmailAddress.html │ │ │ │ ├── ErrorDetail.html │ │ │ │ ├── PayButton.html │ │ │ │ ├── PaymentItem.html │ │ │ │ ├── PhoneNumber.html │ │ │ │ ├── Quantity.html │ │ │ │ ├── Receipt.html │ │ │ │ ├── Reference.html │ │ │ │ ├── Response.html │ │ │ │ ├── SavedCard.html │ │ │ │ ├── SecretKey.html │ │ │ │ ├── Session.html │ │ │ │ ├── Shipping.html │ │ │ │ ├── Source.html │ │ │ │ ├── SourceRequest.html │ │ │ │ ├── TapBlurStyle.html │ │ │ │ ├── TapSDKAPIError.html │ │ │ │ ├── TapSDKError.html │ │ │ │ ├── TapSDKKnownError.html │ │ │ │ ├── TapSDKUnknownError.html │ │ │ │ ├── Tax.html │ │ │ │ ├── Token.html │ │ │ │ ├── TokenizedCard.html │ │ │ │ ├── TrackingURL.html │ │ │ │ ├── TransactionDetails.html │ │ │ │ ├── Transfer.html │ │ │ │ ├── _ObjCMeasurement.html │ │ │ │ └── goSellSDK.html │ │ │ ├── Enums.html │ │ │ ├── Enums │ │ │ │ ├── AddressType.html │ │ │ │ ├── AmountModificatorType.html │ │ │ │ ├── Area.html │ │ │ │ ├── AuthenticationRequirer.html │ │ │ │ ├── AuthenticationStatus.html │ │ │ │ ├── AuthenticationType.html │ │ │ │ ├── AuthorizeActionStatus.html │ │ │ │ ├── AuthorizeActionType.html │ │ │ │ ├── CardVerificationStatus.html │ │ │ │ ├── ChargeStatus.html │ │ │ │ ├── Duration.html │ │ │ │ ├── ElectricCharge.html │ │ │ │ ├── ElectricCurrent.html │ │ │ │ ├── Energy.html │ │ │ │ ├── ErrorCode.html │ │ │ │ ├── Length.html │ │ │ │ ├── Mass.html │ │ │ │ ├── Measurement.html │ │ │ │ ├── Power.html │ │ │ │ ├── SDKAppearanceMode.html │ │ │ │ ├── SDKMode.html │ │ │ │ ├── SourceChannel.html │ │ │ │ ├── SourceObject.html │ │ │ │ ├── SourcePaymentType.html │ │ │ │ ├── SourceType.html │ │ │ │ ├── TAPSDKErrorType.html │ │ │ │ ├── TokenType.html │ │ │ │ ├── TransactionMode.html │ │ │ │ ├── URLStatus.html │ │ │ │ └── Volume.html │ │ │ ├── Extensions.html │ │ │ ├── Extensions │ │ │ │ ├── Address.html │ │ │ │ ├── PaymentOption.html │ │ │ │ ├── SeparateWindowRootViewController.html │ │ │ │ ├── TapBlurEffectStyle.html │ │ │ │ ├── TapFont.html │ │ │ │ ├── TapSerializationError.html │ │ │ │ └── TokenizedCard.html │ │ │ ├── Protocols.html │ │ │ ├── Protocols │ │ │ │ ├── SessionAppearance.html │ │ │ │ ├── SessionDataSource.html │ │ │ │ ├── SessionDelegate.html │ │ │ │ └── SessionProtocol.html │ │ │ ├── Typealiases.html │ │ │ ├── badge.svg │ │ │ ├── css │ │ │ │ ├── highlight.css │ │ │ │ └── jazzy.css │ │ │ ├── img │ │ │ │ ├── carat.png │ │ │ │ ├── dash.png │ │ │ │ └── gh.png │ │ │ ├── index.html │ │ │ ├── js │ │ │ │ ├── jazzy.js │ │ │ │ └── jquery.min.js │ │ │ └── search.json │ │ │ └── docSet.dsidx │ └── goSellSDK.tgz ├── img │ ├── carat.png │ ├── dash.png │ └── gh.png ├── index.html ├── js │ ├── jazzy.js │ └── jquery.min.js └── search.json ├── goSellSDK.podspec ├── goSellSDK.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── xcshareddata │ └── xcschemes │ └── goSellSDK.xcscheme ├── goSellSDK.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ ├── IDEWorkspaceChecks.plist │ └── WorkspaceSettings.xcsettings ├── goSellSDK ├── Core │ ├── API │ │ ├── Internal │ │ │ ├── Client │ │ │ │ ├── APIClient+Authentication.swift │ │ │ │ ├── APIClient+Authorize.swift │ │ │ │ ├── APIClient+BIN.swift │ │ │ │ ├── APIClient+BillingAddress.swift │ │ │ │ ├── APIClient+Card.swift │ │ │ │ ├── APIClient+CardVerification.swift │ │ │ │ ├── APIClient+Charges.swift │ │ │ │ ├── APIClient+Customers.swift │ │ │ │ ├── APIClient+Initialization.swift │ │ │ │ ├── APIClient+PaymentTypes.swift │ │ │ │ ├── APIClient+Retrievable.swift │ │ │ │ ├── APIClient+Token.swift │ │ │ │ └── APIClient.swift │ │ │ ├── Data Managers │ │ │ │ └── SettingsDataManager.swift │ │ │ ├── Enums │ │ │ │ ├── AddressFieldInputType.swift │ │ │ │ ├── AddressFormat.swift │ │ │ │ ├── CardScheme.swift │ │ │ │ ├── CardType.swift │ │ │ │ ├── ErrorAction.swift │ │ │ │ ├── InitializationStatus.swift │ │ │ │ ├── InternalError.swift │ │ │ │ ├── Permissions.swift │ │ │ │ ├── Route.swift │ │ │ │ └── TapSerializationError.swift │ │ │ ├── Models │ │ │ │ ├── AddressField.swift │ │ │ │ ├── AmountedCurrency.swift │ │ │ │ ├── AppleTokenHeaderModel.swift │ │ │ │ ├── AppleTokenModel.swift │ │ │ │ ├── AuthenticationRequest.swift │ │ │ │ ├── BINResponse.swift │ │ │ │ ├── BillingAddressField.swift │ │ │ │ ├── BillingAddressFormat.swift │ │ │ │ ├── BillingAddressResponse.swift │ │ │ │ ├── CreateAuthorizeRequest.swift │ │ │ │ ├── CreateCardRequest.swift │ │ │ │ ├── CreateCardVerificationRequest.swift │ │ │ │ ├── CreateChargeRequest.swift │ │ │ │ ├── CreateTokenApplePay.swift │ │ │ │ ├── CreateTokenCard.swift │ │ │ │ ├── CreateTokenSavedCard.swift │ │ │ │ ├── CreateTokenWithApplePayRequest.swift │ │ │ │ ├── CreateTokenWithCardDataRequest.swift │ │ │ │ ├── CreateTokenWithSavedCardRequest.swift │ │ │ │ ├── Customer.Request.swift │ │ │ │ ├── DeleteCardResponse.swift │ │ │ │ ├── ExpirationDate.swift │ │ │ │ ├── ExtraFee.swift │ │ │ │ ├── InternalSDKSettings.swift │ │ │ │ ├── ListCardsResponse.swift │ │ │ │ ├── Merchant.swift │ │ │ │ ├── Order.swift │ │ │ │ ├── PaymentOption.swift │ │ │ │ ├── PaymentOptionsRequest.swift │ │ │ │ ├── PaymentOptionsResponse.swift │ │ │ │ ├── SDKSettings.swift │ │ │ │ ├── SDKSettingsData.swift │ │ │ │ └── TopupChargeModel.swift │ │ │ ├── Protocols │ │ │ │ ├── Authenticatable.swift │ │ │ │ ├── AuthorizeProtocol.swift │ │ │ │ ├── ChargeProtocol.swift │ │ │ │ ├── CreateTokenRequest.swift │ │ │ │ ├── EmptyInitializable.swift │ │ │ │ ├── IdentifiableWithString.swift │ │ │ │ ├── InitializableWithString.swift │ │ │ │ ├── OptionallyIdentifiableWithString.swift │ │ │ │ ├── ProportionalToOrigin.swift │ │ │ │ ├── Retrievable.swift │ │ │ │ └── SecureEncodable.swift │ │ │ └── Utils │ │ │ │ ├── Crypter.swift │ │ │ │ ├── ErrorConstants.swift │ │ │ │ ├── ErrorUtils.swift │ │ │ │ ├── KeychainManager.swift │ │ │ │ └── RSAUtils.swift │ │ └── Public │ │ │ ├── Data │ │ │ └── APISession.swift │ │ │ ├── Enums │ │ │ ├── AddressType.swift │ │ │ ├── AmountModificatorType.swift │ │ │ ├── AuthenticationRequirer.swift │ │ │ ├── AuthenticationStatus.swift │ │ │ ├── AuthenticationType.swift │ │ │ ├── AuthorizeActionStatus.swift │ │ │ ├── AuthorizeActionType.swift │ │ │ ├── CardVerificationStatus.swift │ │ │ ├── ChargeStatus.swift │ │ │ ├── ErrorCode.swift │ │ │ ├── Measurements │ │ │ │ ├── Area.swift │ │ │ │ ├── Duration.swift │ │ │ │ ├── ElectricCharge.swift │ │ │ │ ├── ElectricCurrent.swift │ │ │ │ ├── Energy.swift │ │ │ │ ├── Length.swift │ │ │ │ ├── Mass.swift │ │ │ │ ├── Measurement.swift │ │ │ │ ├── Power.swift │ │ │ │ ├── Volume.swift │ │ │ │ └── _ObjCMeasurement.swift │ │ │ ├── PaymentType.swift │ │ │ ├── SDKMode.swift │ │ │ ├── SourceChannel.swift │ │ │ ├── SourceObject.swift │ │ │ ├── SourcePaymentType.swift │ │ │ ├── SourceType.swift │ │ │ ├── TapSDKErrorType.swift │ │ │ ├── TokenType.swift │ │ │ ├── TransactionMode.swift │ │ │ ├── UIModeDisplayEnum.swift │ │ │ ├── URLStatus.swift │ │ │ └── cardType.swift │ │ │ ├── Extensions │ │ │ └── PaymentItem+Amount.swift │ │ │ └── Models │ │ │ ├── Acquirer.swift │ │ │ ├── Address.swift │ │ │ ├── AmountModificator.swift │ │ │ ├── Authentication.swift │ │ │ ├── Authorize.swift │ │ │ ├── AuthorizeAction.swift │ │ │ ├── AuthorizeActionResponse.swift │ │ │ ├── CardVerification.swift │ │ │ ├── Charge.swift │ │ │ ├── Country.swift │ │ │ ├── Currency.swift │ │ │ ├── Customer.swift │ │ │ ├── Destination.swift │ │ │ ├── DestinationGroup.swift │ │ │ ├── EmailAddress.swift │ │ │ ├── Errors │ │ │ ├── APIError.swift │ │ │ ├── ErrorDetail.swift │ │ │ ├── TapSDKAPIError.swift │ │ │ ├── TapSDKError.swift │ │ │ ├── TapSDKKnownError.swift │ │ │ └── TapSDKUnknownError.swift │ │ │ ├── Metadata.swift │ │ │ ├── PaymentAgreement.swift │ │ │ ├── PaymentItem.swift │ │ │ ├── PhoneNumber.swift │ │ │ ├── Quantity.swift │ │ │ ├── Receipt.swift │ │ │ ├── Reference.swift │ │ │ ├── Response.swift │ │ │ ├── SavedCard.swift │ │ │ ├── SecretKey.swift │ │ │ ├── Shipping.swift │ │ │ ├── Source.swift │ │ │ ├── SourceRequest.swift │ │ │ ├── Tax.swift │ │ │ ├── Token.swift │ │ │ ├── TokenizedCard.swift │ │ │ ├── TopUp.swift │ │ │ ├── TopUpApplication.swift │ │ │ ├── TrackingURL.swift │ │ │ ├── TransactionDetails.swift │ │ │ ├── TransactionExpiry.swift │ │ │ ├── TransactionOrder.swift │ │ │ └── Transfer.swift │ └── UI │ │ ├── Internal │ │ ├── Animation Controllers │ │ │ ├── FadeAnimationController.swift │ │ │ ├── PaymentDismissalAnimationController.swift │ │ │ ├── PaymentPresentationAnimationController.swift │ │ │ ├── PopupAnimationController.swift │ │ │ ├── PopupPresentationAnimationController.swift │ │ │ └── UINavigationControllerSideAnimationController.swift │ │ ├── Buttons │ │ │ └── TapButton.swift │ │ ├── Cells │ │ │ ├── Collection View │ │ │ │ ├── BaseCollectionViewCell.swift │ │ │ │ └── CardCollectionViewCell.swift │ │ │ └── Table View │ │ │ │ ├── AddressDropdownFieldTableViewCell.swift │ │ │ │ ├── AddressFieldTableViewCell.swift │ │ │ │ ├── AddressTextInputFieldTableViewCell.swift │ │ │ │ ├── AmountedCurrencyTableViewCell.swift │ │ │ │ ├── ApplePayTableViewCell.swift │ │ │ │ ├── BaseTableViewCell.swift │ │ │ │ ├── CardInputTableViewCell.swift │ │ │ │ ├── CardsContainerTableViewCell.swift │ │ │ │ ├── CountryTableViewCell.swift │ │ │ │ ├── CurrencySelectionTableViewCell.swift │ │ │ │ ├── EmptyTableViewCell.swift │ │ │ │ ├── GroupTableViewCell.swift │ │ │ │ ├── GroupWithButtonTableViewCell.swift │ │ │ │ ├── ImageTableViewCell.swift │ │ │ │ ├── PaymentCardCellSeprator.swift │ │ │ │ ├── PaymentCellSeprator.swift │ │ │ │ └── WebPaymentOptionTableViewCell.swift │ │ ├── Controllers │ │ │ ├── AddressInputViewController+UITableView.swift │ │ │ ├── AddressInputViewController.swift │ │ │ ├── AsyncResponseViewController.swift │ │ │ ├── BaseNavigationController.swift │ │ │ ├── BaseViewController.swift │ │ │ ├── CardScannerViewController.swift │ │ │ ├── CountrySelectionViewController.swift │ │ │ ├── CurrencySelectionViewController.swift │ │ │ ├── HeaderNavigatedViewController.swift │ │ │ ├── HeaderNavigatedViewControllerWithSearch.swift │ │ │ ├── LoadingViewController.swift │ │ │ ├── OTPViewController.swift │ │ │ ├── PaymentContentViewController.swift │ │ │ ├── PaymentOptionsViewController+UITableView.swift │ │ │ ├── PaymentOptionsViewController.swift │ │ │ ├── PaymentViewController.swift │ │ │ ├── ResizablePaymentContainerViewController.swift │ │ │ ├── SeparateWindowViewController.swift │ │ │ ├── SetupApplePayViewController.swift │ │ │ ├── StatusPopupViewController.swift │ │ │ ├── TapAlertController.swift │ │ │ ├── WebPaymentContentViewController.swift │ │ │ ├── WebPaymentPopupViewController.swift │ │ │ └── WebPaymentViewController.swift │ │ ├── Data │ │ │ ├── AddressFieldsDataManager+CountrySelection.swift │ │ │ ├── AddressFieldsDataManager.swift │ │ │ ├── BINDataManager.swift │ │ │ ├── CountriesDataManager.swift │ │ │ ├── CurrencyCodesDataManager.swift │ │ │ ├── ErrorActionExecutor.swift │ │ │ ├── ErrorDataManager.swift │ │ │ ├── InterfaceOrientationManager.swift │ │ │ ├── InternalSession.swift │ │ │ ├── LocalizationManager.swift │ │ │ ├── OTPTimerDataManager.swift │ │ │ ├── SessionDelegateProxy.swift │ │ │ └── WebPaymentURLDecision.swift │ │ ├── Enums │ │ │ ├── AppearanceMode.swift │ │ │ ├── Image.swift │ │ │ ├── LocalizedTextAlignment.swift │ │ │ ├── OTPTimerState.swift │ │ │ ├── PaymentStatus.swift │ │ │ ├── StatusBarStyle.swift │ │ │ ├── TextInputType.swift │ │ │ ├── ValidationType.swift │ │ │ └── ViewControllerOperation.swift │ │ ├── Extensions │ │ │ ├── Address+Additions.swift │ │ │ ├── AddressType+Additions.swift │ │ │ ├── AmountedCurrency+Additions.swift │ │ │ ├── BillingAddressField+Additions.swift │ │ │ ├── Bundle+Additions.swift │ │ │ ├── Comparable+Additions.swift │ │ │ ├── Country+Additions.swift │ │ │ ├── EditableTextInsetsTextField+Additions.swift │ │ │ ├── Equatable+Additions.swift │ │ │ ├── ExpirationDate+Additions.swift │ │ │ ├── LocalizationKey+Additions.swift │ │ │ ├── NSTextAlignment+Additions.swift │ │ │ ├── Notification.Name+Additions.swift │ │ │ ├── String+Additions.swift │ │ │ ├── String+SAR.swift │ │ │ ├── TapBlurEffectStyle+Additions.swift │ │ │ ├── TapSearchView+Additions.swift │ │ │ ├── UIButton+Additions.swift │ │ │ ├── UIColor+Additions.swift │ │ │ ├── UIEdgeInsets+Additions.swift │ │ │ ├── UIFont+Additions.swift │ │ │ ├── UIImage+Additions.swift │ │ │ ├── UILabel+Additions.swift │ │ │ ├── UIStoryboard+Additions.swift │ │ │ ├── UITextField+Additions.swift │ │ │ ├── UIView+Additions.swift │ │ │ └── UIWindow.Level+Additions.swift │ │ ├── Interaction Controllers │ │ │ ├── BaseInteractionController.swift │ │ │ ├── OTPDismissalInteractionController.swift │ │ │ └── UINavigationControllerPopInteractionController.swift │ │ ├── Process │ │ │ ├── Process+Additions.swift │ │ │ ├── Process.AddressInputHandler.swift │ │ │ ├── Process.AmountCalculator.swift │ │ │ ├── Process.CardScannerHandler.swift │ │ │ ├── Process.CurrencySelectionHandler.swift │ │ │ ├── Process.DataManager.swift │ │ │ ├── Process.Implementation.swift │ │ │ ├── Process.OTPHandler.swift │ │ │ ├── Process.TapButtonHandler.swift │ │ │ ├── Process.Validation.swift │ │ │ ├── Process.ViewModelsHandler.swift │ │ │ ├── Process.WebPaymentHandler.swift │ │ │ ├── Process.Wrapped.swift │ │ │ ├── Process.swift │ │ │ ├── ProcessHandlerInterface.swift │ │ │ ├── ProcessInterface.swift │ │ │ └── ProcessMode.swift │ │ ├── Protocols │ │ │ ├── AddressFieldsDataManagerLoadingListener.swift │ │ │ ├── BindingWithModelCell.swift │ │ │ ├── CardAddressDataStorage.swift │ │ │ ├── CardAddressInputListener.swift │ │ │ ├── CardBrandChangeReporting.swift │ │ │ ├── CardCollectionViewCellLoading.swift │ │ │ ├── CardInputTableViewCellLoading.swift │ │ │ ├── CardScannerViewControllerDelegate.swift │ │ │ ├── CardValidatorDelegate.swift │ │ │ ├── CountrySelectionViewControllerDelegate.swift │ │ │ ├── CurrencySelectionViewControllerDelegate.swift │ │ │ ├── DataManagerWithFilteredData.swift │ │ │ ├── DataValidation.swift │ │ │ ├── DynamicLayoutTableViewCellModel.swift │ │ │ ├── Filterable.swift │ │ │ ├── FilterableByCurrency.swift │ │ │ ├── GlowingViewHandler.swift │ │ │ ├── InstantiatableFromStoryboard.swift │ │ │ ├── InteractivePopViewController.swift │ │ │ ├── InteractiveTransitionControllerDelegate.swift │ │ │ ├── InternalSessionImplementation.swift │ │ │ ├── InternalSessionProtocol.swift │ │ │ ├── LayoutDirectionObserver.swift │ │ │ ├── ListValue.swift │ │ │ ├── LoadingWithModelCell.swift │ │ │ ├── Localizable.swift │ │ │ ├── LocalizationObserver.swift │ │ │ ├── NavigationContentViewController.swift │ │ │ ├── OTPViewControllerDelegate.swift │ │ │ ├── PayButtonInternalImplementation.swift │ │ │ ├── PaymentOptionCellViewModel.swift │ │ │ ├── PopupOverlaySupport.swift │ │ │ ├── PopupPresentationSupport.swift │ │ │ ├── SetupApplePayViewControllerDelegate.swift │ │ │ ├── SingleCellModel.swift │ │ │ ├── Singleton.swift │ │ │ ├── SortableByOrder.swift │ │ │ ├── StaticlyDestroyable.swift │ │ │ ├── TapButtonDelegate.swift │ │ │ ├── TextFieldInputDataValidation.swift │ │ │ ├── TextInputDataValidation.swift │ │ │ ├── TextLabelInputDataValidation.swift │ │ │ ├── ThemeObserver.swift │ │ │ ├── Transformable.swift │ │ │ ├── ViewControllerLayoutListener.swift │ │ │ ├── WebPaymentContentViewControllerDelegate.swift │ │ │ └── WobblingViewHandler.swift │ │ ├── Resources │ │ │ ├── AsyncPaymentResultView.xib │ │ │ ├── Colors.xcassets │ │ │ │ ├── AsyncLabelColors.colorset │ │ │ │ │ └── Contents.json │ │ │ │ ├── CardInputTextFieldColor.colorset │ │ │ │ │ └── Contents.json │ │ │ │ ├── Contents.json │ │ │ │ ├── CurrencyHolderViewColor.colorset │ │ │ │ │ └── Contents.json │ │ │ │ ├── DefaultCardSeparatorColor.colorset │ │ │ │ │ └── Contents.json │ │ │ │ ├── DefaultCellColor.colorset │ │ │ │ │ └── Contents.json │ │ │ │ ├── DefaultSeparatorCellColor.colorset │ │ │ │ │ └── Contents.json │ │ │ │ ├── OTPHolderColor.colorset │ │ │ │ │ └── Contents.json │ │ │ │ ├── SaveCardLabelColor.colorset │ │ │ │ │ └── Contents.json │ │ │ │ ├── SaveCardSwitchTintColor.colorset │ │ │ │ │ └── Contents.json │ │ │ │ └── SavedCardCellBackgroundColor.colorset │ │ │ │ │ └── Contents.json │ │ │ ├── Images.xcassets │ │ │ │ ├── ApplePayMark.imageset │ │ │ │ │ ├── Apple_Pay_Mark Copy 3@2x.png │ │ │ │ │ ├── Apple_Pay_Mark Copy 3@3x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── ApplePaySetUp.imageset │ │ │ │ │ ├── ApplePay-SetUp_2x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── Contents.json │ │ │ │ ├── SetupApplePaySplash.imageset │ │ │ │ │ ├── 4.Setup Apple PayPay_Splash_2@2x.png │ │ │ │ │ ├── 4.Setup Apple PayPay_Splash_2@3x.png │ │ │ │ │ └── Contents.json │ │ │ │ ├── btn_scan_frame.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── btn_scan_frame.png │ │ │ │ │ ├── btn_scan_frame@2x.png │ │ │ │ │ └── btn_scan_frame@3x.png │ │ │ │ ├── btn_scan_icon.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── btn_scan_icon.png │ │ │ │ │ ├── btn_scan_icon@2x.png │ │ │ │ │ └── btn_scan_icon@3x.png │ │ │ │ ├── btn_security.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── btn_security.png │ │ │ │ │ ├── btn_security@2x.png │ │ │ │ │ └── btn_security@3x.png │ │ │ │ ├── delete_card_icon.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── delete_card_icon.png │ │ │ │ ├── ic_arrow_left.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── ic_arrow_left.png │ │ │ │ │ ├── ic_arrow_left@2x.png │ │ │ │ │ └── ic_arrow_left@3x.png │ │ │ │ ├── ic_arrow_right.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── ic_arrow_right.png │ │ │ │ │ ├── ic_arrow_right@2x.png │ │ │ │ │ └── ic_arrow_right@3x.png │ │ │ │ ├── ic_bill.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── ic_bill.png │ │ │ │ │ ├── ic_bill@2x.png │ │ │ │ │ └── ic_bill@3x.png │ │ │ │ ├── ic_checkmark.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── ic_checkmark.png │ │ │ │ │ ├── ic_checkmark@2x.png │ │ │ │ │ └── ic_checkmark@3x.png │ │ │ │ ├── ic_checkmark_green.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── ic_checkmark_green.png │ │ │ │ │ ├── ic_checkmark_green@2x.png │ │ │ │ │ └── ic_checkmark_green@3x.png │ │ │ │ ├── ic_checkmark_green_small.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── ic_checkmark_green_small.png │ │ │ │ │ ├── ic_checkmark_green_small@2x.png │ │ │ │ │ └── ic_checkmark_green_small@3x.png │ │ │ │ ├── ic_close.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── ic_close.png │ │ │ │ │ ├── ic_close@2x.png │ │ │ │ │ └── ic_close@3x.png │ │ │ │ ├── ic_close_otp.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── ic_close_otp.png │ │ │ │ │ ├── ic_close_otp@2x.png │ │ │ │ │ └── ic_close_otp@3x.png │ │ │ │ ├── ic_merchant_logo_placeholder.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── ic_merchant_logo_placeholder.png │ │ │ │ │ ├── ic_merchant_logo_placeholder@2x.png │ │ │ │ │ └── ic_merchant_logo_placeholder@3x.png │ │ │ │ └── ic_x_red.imageset │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── ic_x_red.png │ │ │ │ │ ├── ic_x_red@2x.png │ │ │ │ │ └── ic_x_red@3x.png │ │ │ ├── LoadingView.xib │ │ │ ├── Localization │ │ │ │ ├── ar.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ ├── en.lproj │ │ │ │ │ └── Localizable.strings │ │ │ │ └── ru.lproj │ │ │ │ │ └── Localizable.strings │ │ │ ├── OTPInputView.xib │ │ │ ├── PayButton.xib │ │ │ ├── Payment.storyboard │ │ │ ├── Popups.storyboard │ │ │ ├── TapButton.xib │ │ │ ├── TapNavigationView.xib │ │ │ ├── WebViewProgressBar.xib │ │ │ ├── sar-Regular.ttf │ │ │ └── themes.json │ │ ├── Theme │ │ │ ├── AppearanceStyle.swift │ │ │ ├── BlurSettings.swift │ │ │ ├── CardCellStyle.swift │ │ │ ├── CaseSelectionCellStyle.swift │ │ │ ├── CommonImages.swift │ │ │ ├── CommonStyle.swift │ │ │ ├── CurrencySelectionCellStyle.swift │ │ │ ├── Font.swift │ │ │ ├── GlowStyle.swift │ │ │ ├── GroupCellStyle.swift │ │ │ ├── GroupWithButtonCellStyle.swift │ │ │ ├── HexColor.swift │ │ │ ├── IconStyle.swift │ │ │ ├── KeyboardAppearance.swift │ │ │ ├── NavigationBarStyle.swift │ │ │ ├── OTPScreenStyle.swift │ │ │ ├── PaymentOptionCellsStyle.swift │ │ │ ├── ResourceImage.swift │ │ │ ├── SaveCardStyle.swift │ │ │ ├── SavedCardStyle.swift │ │ │ ├── SearchBarStyle.swift │ │ │ ├── StatusPopupStyle.swift │ │ │ ├── TapButtonStateStyle.swift │ │ │ ├── TapButtonStyle.swift │ │ │ ├── TextInputStyle.swift │ │ │ ├── TextStyle.swift │ │ │ ├── Theme.swift │ │ │ ├── ThemeManager.swift │ │ │ ├── ThemesContainer.swift │ │ │ └── WebCellStyle.swift │ │ ├── Utils │ │ │ ├── BrandWithScheme.swift │ │ │ ├── CardsCollectionViewLayout.swift │ │ │ ├── CurrencyFormatter.swift │ │ │ ├── KnownStaticallyDestroyableTypes.swift │ │ │ ├── LocalizedParagraphStyle.swift │ │ │ ├── TapEdgeInsets.swift │ │ │ ├── WeaklyWrapped.swift │ │ │ └── WrappedAndTypeErased.swift │ │ ├── Validators │ │ │ ├── CVVValidator.swift │ │ │ ├── CardAddressValidator.swift │ │ │ ├── CardNumberValidator.swift │ │ │ ├── CardValidator.swift │ │ │ ├── CardholderNameValidator.swift │ │ │ ├── ExpirationDateValidator.swift │ │ │ └── SaveCardValidator.swift │ │ ├── View Models │ │ │ ├── AddressDropdownFieldTableViewCellModel.swift │ │ │ ├── AddressFieldTableViewCellModel.swift │ │ │ ├── AddressTextInputFieldTableViewCellModel.swift │ │ │ ├── AmountedCurrencyTableViewCellModel.swift │ │ │ ├── ApplePaymentOptionTableViewCellModel.swift │ │ │ ├── CardCollectionViewCellModel.swift │ │ │ ├── CardInputTableViewCellModel+AddressInput.swift │ │ │ ├── CardInputTableViewCellModel+CardScanning.swift │ │ │ ├── CardInputTableViewCellModel+DataValidation.swift │ │ │ ├── CardInputTableViewCellModel+UITableView.swift │ │ │ ├── CardInputTableViewCellModel.swift │ │ │ ├── CardsContainerTableViewCellModel+UICollectionView.swift │ │ │ ├── CardsContainerTableViewCellModel.swift │ │ │ ├── CellViewModel.swift │ │ │ ├── CollectionViewCellViewModel.swift │ │ │ ├── CountryTableViewCellModel.swift │ │ │ ├── CurrencySelectionTableViewCellViewModel.swift │ │ │ ├── EmptyTableViewCellModel.swift │ │ │ ├── GroupTableViewCellModel.swift │ │ │ ├── GroupWithButtonTableViewCellModel.swift │ │ │ ├── ImageTableViewCellModel.swift │ │ │ ├── PaymentOptionCollectionCellViewModel.swift │ │ │ ├── PaymentOptionTableCellViewModel.swift │ │ │ ├── TableViewCellViewModel.swift │ │ │ ├── ViewModel.swift │ │ │ └── WebPaymentOptionTableViewCellModel.swift │ │ └── Views │ │ │ ├── AsyncPaymentResultView │ │ │ └── AsyncPaymentResultView.swift │ │ │ ├── LoadingView │ │ │ ├── LoadingView.swift │ │ │ └── LoadingViewSupport.swift │ │ │ ├── MaskedWindow │ │ │ ├── MaskedWindow.swift │ │ │ └── MaskedWindowContentProvider.swift │ │ │ ├── MirrorableView │ │ │ └── MirrorableView.swift │ │ │ ├── OTPInputView │ │ │ ├── OTPInputView.swift │ │ │ └── OTPInputViewDelegate.swift │ │ │ ├── TapNavigationView │ │ │ ├── TapNavigationView.swift │ │ │ ├── TapNavigationViewDataSource.swift │ │ │ └── TapNavigationViewDelegate.swift │ │ │ └── WebViewProgressBar │ │ │ └── WebViewProgressBar.swift │ │ └── Public │ │ ├── Buttons │ │ └── PayButton.swift │ │ ├── Data │ │ ├── GoSellSDK.swift │ │ └── Session.swift │ │ ├── Enums │ │ ├── SDKAppearanceMode.swift │ │ ├── SDKLightDarkMode.swift │ │ └── TapBlurStyle.swift │ │ ├── Extensions │ │ ├── SeparateWindowRootViewController+Additions.swift │ │ └── TapFont+Additions.swift │ │ └── Protocols │ │ ├── SessionAppearance.swift │ │ ├── SessionDataSource.swift │ │ ├── SessionDelegate.swift │ │ └── SessionProtocol.swift ├── ErrorReporting │ └── Internal │ │ ├── Classes │ │ └── Reporter.swift │ │ └── Extensions │ │ ├── ErrorAction+ErrorReporting.swift │ │ └── InterfaceOrientationManager+ErrorReporting.swift ├── Info.plist └── goSellSDK.h └── sar-Regular.ttf /.jazzy.yaml: -------------------------------------------------------------------------------- 1 | exclude: 2 | - "Example" 3 | min_acl: public 4 | xcodebuild_arguments: 5 | - clean 6 | - -workspace 7 | - goSellSDK.xcworkspace 8 | - -scheme 9 | - goSellSDK -------------------------------------------------------------------------------- /Example/Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '13.0' 2 | use_frameworks! 3 | 4 | source 'https://github.com/CocoaPods/Specs.git' 5 | 6 | target 'goSellSDKExample' do 7 | 8 | pod 'Crashlytics' 9 | pod 'Fabric' 10 | pod 'TapApplePayKit-iOS' 11 | pod 'goSellSDK', :path => '../' 12 | # pod 'goSellSDK/ErrorReporting', :path => '../' 13 | 14 | end 15 | 16 | post_install do |installer| 17 | 18 | installer.pods_project.targets.each do |target| 19 | 20 | target.build_configurations.each do |config| 21 | 22 | if config.name.include?("Debug") 23 | 24 | config.build_settings['SWIFT_OPTIMIZATION_LEVEL'] = '-Onone' 25 | 26 | end 27 | 28 | end 29 | 30 | end 31 | 32 | end 33 | -------------------------------------------------------------------------------- /Example/goSellSDKExample.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Example/goSellSDKExample.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Example/goSellSDKExample.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Example/goSellSDKExample.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Example/goSellSDKExample.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildSystemType 6 | Latest 7 | 8 | 9 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Cells/ColorTableViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ColorTableViewCell.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class UIKit.UIView.UIView 9 | 10 | internal final class ColorTableViewCell: TitleTableViewCell { 11 | 12 | // MARK: - Internal - 13 | // MARK: Methods 14 | 15 | internal func setColor(_ color: Color) { 16 | 17 | self.setTitle(color.description) 18 | 19 | self.colorView?.backgroundColor = color.asUIColor 20 | } 21 | 22 | // MARK: - Private - 23 | // MARK: Properties 24 | 25 | @IBOutlet private weak var colorView: UIView? 26 | } 27 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Cells/DestinationTableViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DestinationTableViewCell.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class UIKit.UILabel.UILabel 9 | import class UIKit.UITableViewCell.UITableViewCell 10 | 11 | internal final class DestinationTableViewCell: UITableViewCell { 12 | 13 | // MARK: - Internal - 14 | // MARK: Methods 15 | 16 | internal func setIdentifier(_ identifier: String, amount: String, currency: String) { 17 | 18 | self.identiferLabel?.text = identifier 19 | self.amountLabel?.text = amount 20 | self.currencyLabel?.text = currency 21 | } 22 | 23 | // MARK: - Private - 24 | // MARK: Properties 25 | 26 | @IBOutlet private weak var identiferLabel: UILabel? 27 | @IBOutlet private weak var amountLabel: UILabel? 28 | @IBOutlet private weak var currencyLabel: UILabel? 29 | } 30 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Cells/FontTableViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FontTableViewCell.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class UIKit.UIFont.UIFont 9 | 10 | internal class FontTableViewCell: TitleTableViewCell { 11 | 12 | // MARK: - Internal - 13 | // MARK: Methods 14 | 15 | internal func setFont(_ font: String) { 16 | 17 | let uiFont = UIFont(name: font, size: 17.0)! 18 | self.setTitle(uiFont.familyName) 19 | 20 | self.titleTextLabel?.font = uiFont 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Cells/GroupHeaderCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GroupHeaderCell.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class UIKit.UILabel.UILabel 9 | import class UIKit.UITableViewCell.UITableViewCell 10 | 11 | internal final class GroupHeaderCell: UITableViewCell { 12 | 13 | // MARK: - Internal - 14 | // MARK: Methods 15 | 16 | internal func setGroupTitle(_ groupTitle: String) { 17 | 18 | self.groupTitleLabel?.text = groupTitle 19 | } 20 | 21 | // MARK: - Private - 22 | // MARK: Properties 23 | 24 | @IBOutlet private weak var groupTitleLabel: UILabel? 25 | } 26 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Cells/SelectableCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SelectableCell.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class UIKit.UIImageView.UIImageView 9 | import class UIKit.UITableViewCell.UITableViewCell 10 | 11 | internal class SelectableCell: UITableViewCell { 12 | 13 | // MARK: - Internal - 14 | // MARK: Methods 15 | 16 | internal override func setSelected(_ selected: Bool, animated: Bool) { 17 | 18 | super.setSelected(selected, animated: animated) 19 | self.checkmarkImageView?.isHidden = !selected 20 | } 21 | 22 | // MARK: - Private - 23 | // MARK: Properties 24 | 25 | @IBOutlet private weak var checkmarkImageView: UIImageView? 26 | } 27 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Cells/ShippingTableViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ShippingTableViewCell.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class UIKit.UILabel.UILabel 9 | import class UIKit.UITableViewCell.UITableViewCell 10 | 11 | internal final class ShippingTableViewCell: UITableViewCell { 12 | 13 | // MARK: - Internal - 14 | // MARK: Methods 15 | 16 | internal func setTitleText(_ titleText: String, amountText: String) { 17 | 18 | self.titleLabel?.text = titleText 19 | self.amountLabel?.text = amountText 20 | } 21 | 22 | // MARK: - Private - 23 | // MARK: Properties 24 | 25 | @IBOutlet private weak var titleLabel: UILabel? 26 | @IBOutlet private weak var amountLabel: UILabel? 27 | } 28 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Cells/TaxTableViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TaxTableViewCell.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class UIKit.UILabel.UILabel 9 | import class UIKit.UITableViewCell.UITableViewCell 10 | 11 | internal final class TaxTableViewCell: UITableViewCell { 12 | 13 | // MARK: - Internal - 14 | // MARK: Methods 15 | 16 | internal func setTitle(_ title: String?, descriptionText: String?, valueText: String?) { 17 | 18 | self.titleTextLabel?.text = title 19 | self.descriptionTextLabel?.text = descriptionText 20 | self.valueLabel?.text = valueText 21 | } 22 | 23 | // MARK: - Private - 24 | // MARK: Properties 25 | 26 | @IBOutlet private weak var titleTextLabel: UILabel? 27 | @IBOutlet private weak var descriptionTextLabel: UILabel? 28 | @IBOutlet private weak var valueLabel: UILabel? 29 | } 30 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Cells/TitleTableViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TitleTableViewCell.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class UIKit.UILabel.UILabel 9 | import class UIKit.UITableViewCell.UITableViewCell 10 | 11 | internal class TitleTableViewCell: UITableViewCell { 12 | 13 | // MARK: - Internal - 14 | // MARK: Properties 15 | 16 | @IBOutlet internal private(set) weak var titleTextLabel: UILabel? 17 | 18 | // MARK: Methods 19 | 20 | internal func setTitle(_ title: CustomStringConvertible) { 21 | 22 | self.titleTextLabel?.text = title.description.capitalized 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Extensions/Currency+Additions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Currency+Additions.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import Foundation 9 | import class goSellSDK.Currency 10 | 11 | internal extension Currency { 12 | 13 | // MARK: - Internal - 14 | // MARK: Properties 15 | 16 | var localizedSymbol: String { 17 | 18 | return (Locale.current as NSLocale).displayName(forKey: .currencySymbol, value: self.isoCode) ?? self.isoCode 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Extensions/Decodable+Additions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Decodable+Additions.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import Foundation 9 | 10 | internal extension Decodable { 11 | 12 | // MARK: - Internal - 13 | // MARK: Methods 14 | 15 | init?(dictionaryRepresentation: [String: Any]) { 16 | 17 | guard let jsonData = try? JSONSerialization.data(withJSONObject: dictionaryRepresentation, options: []) else { return nil } 18 | 19 | do { 20 | 21 | self = try JSONDecoder().decode(Self.self, from: jsonData) 22 | } 23 | catch let error { 24 | 25 | print("Error retrieving settings: \(error)") 26 | return nil 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Extensions/Encodable+Additions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Encodable+Additions.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import Foundation 9 | 10 | internal extension Encodable { 11 | 12 | var dictionaryRepresentation: [String: Any]? { 13 | 14 | guard let data = try? JSONEncoder().encode(self) else { return nil } 15 | let object = try? JSONSerialization.jsonObject(with: data, options: []) 16 | 17 | if let dictionaryObject = object as? [String: Any] { 18 | 19 | return dictionaryObject 20 | } 21 | else { 22 | 23 | return nil 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Extensions/Measurement+Additions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Measurement+Additions.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import enum goSellSDK.Measurement 9 | 10 | internal extension Measurement { 11 | 12 | static var allCategoriesWithDefaultUnitsOfMeasurement: [Measurement] { 13 | 14 | return [ 15 | 16 | .area(.squareMeters), 17 | .duration(.seconds), 18 | .electricCharge(.ampereHours), 19 | .electricCurrent(.amperes), 20 | .energy(.joules), 21 | .length(.meters), 22 | .mass(.kilograms), 23 | .power(.watts), 24 | .volume(.cubicMeters), 25 | .units 26 | ] 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Models/GroupHeaderCellModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GroupHeaderCellModel.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class UIKit.UITableViewCell.UITableViewCell 9 | 10 | internal class GroupHeaderCellModel: TableViewCellModel { 11 | 12 | // MARK: - Internal - 13 | // MARK: Properties 14 | 15 | internal let title: String 16 | 17 | internal override class var cellClass: UITableViewCell.Type { 18 | 19 | return GroupHeaderCell.self 20 | } 21 | 22 | // MARK: Methods 23 | 24 | internal init(title: String) { 25 | 26 | self.title = title 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Models/PaymentItemTableViewCellModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PaymentItemTableViewCellModel.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class goSellSDK.PaymentItem 9 | import class UIKit.UITableViewCell.UITableViewCell 10 | 11 | internal class PaymentItemTableViewCellModel: TableViewCellModel { 12 | 13 | // MARK: - Internal - 14 | // MARK: Properties 15 | 16 | internal let paymentItem: PaymentItem 17 | 18 | internal override class var cellClass: UITableViewCell.Type { 19 | 20 | return PaymentItemTableViewCell.self 21 | } 22 | 23 | // MARK: Methods 24 | 25 | internal init(paymentItem: PaymentItem) { 26 | 27 | self.paymentItem = paymentItem 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Models/Settings/GlobalSettings.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GlobalSettings.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import Foundation 9 | 10 | internal struct GlobalSettings: Encodable { 11 | 12 | // MARK: - Internal - 13 | // MARK: Properties 14 | 15 | internal static let `default` = GlobalSettings(sdkLanguage: Language(localeIdentifier: Locale.TapLocaleIdentifier.en)) 16 | 17 | internal var sdkLanguage: Language 18 | 19 | // MARK: Methods 20 | 21 | internal init(sdkLanguage: Language) { 22 | 23 | self.sdkLanguage = sdkLanguage 24 | } 25 | 26 | // MARK: - Private - 27 | 28 | private enum CodingKeys: String, CodingKey { 29 | 30 | case sdkLanguage = "sdk_language" 31 | } 32 | } 33 | 34 | // MARK: - Decodable 35 | extension GlobalSettings: Decodable { 36 | 37 | internal init(from decoder: Decoder) throws { 38 | 39 | let container = try decoder.container(keyedBy: CodingKeys.self) 40 | let sdkLanguage = try container.decodeIfPresent (Language.self, forKey: .sdkLanguage) ?? GlobalSettings.default.sdkLanguage 41 | 42 | self.init(sdkLanguage: sdkLanguage) 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Models/TableViewCellModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TableViewCellModel.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class UIKit.UITableViewCell.UITableViewCell 9 | 10 | internal class TableViewCellModel { 11 | 12 | // MARK: - Internal - 13 | // MARK: Properties 14 | 15 | internal var isSelected = false 16 | 17 | internal class var cellClass: UITableViewCell.Type { 18 | 19 | return UITableViewCell.self 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Protocols/CaseSelectionTableViewControllerDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CaseSelectionTableViewControllerDelegate.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal protocol CaseSelectionTableViewControllerDelegate: class { 9 | 10 | func caseSelectionViewController(_ controller: CaseSelectionTableViewController, didFinishWith value: CaseSelectionTableViewController.Value) 11 | } 12 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Protocols/CustomerViewControllerDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CustomerViewControllerDelegate.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class goSellSDK.Customer 9 | 10 | internal protocol CustomerViewControllerDelegate: class { 11 | 12 | func customerViewController(_ controller: CustomerViewController, didFinishWith customer: EnvironmentCustomer) 13 | } 14 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Protocols/CustomersListViewControllerDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CustomersListViewControllerDelegate.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class goSellSDK.Customer 9 | 10 | internal protocol CustomersListViewControllerDelegate: class { 11 | 12 | func customersListViewController(_ controller: CustomersListViewController, didFinishWith customer: EnvironmentCustomer?) 13 | } 14 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Protocols/DestinationViewControllerDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DestinationViewControllerDelegate.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class goSellSDK.Destination 9 | 10 | internal protocol DestinationViewControllerDelegate: class { 11 | 12 | func destinationViewController(_ controller: DestinationViewController, didFinishWith destination: Destination) 13 | } 14 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Protocols/PaymentItemViewControllerDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PaymentItemViewControllerDelegate.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class goSellSDK.PaymentItem 9 | 10 | internal protocol PaymentItemViewControllerDelegate: class { 11 | 12 | func paymentItemViewController(_ controller: PaymentItemViewController, didFinishWith item: PaymentItem) 13 | } 14 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Protocols/SeguePresenter.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SeguePresenter.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class Dispatch.DispatchQueue 9 | import class UIKit.UIViewController.UIViewController 10 | 11 | internal protocol SeguePresenter where Self: UIViewController { } 12 | 13 | internal extension SeguePresenter { 14 | 15 | func show(_ controller: UIViewController.Type) { 16 | 17 | DispatchQueue.main.async { 18 | 19 | self.performSegue(withIdentifier: "\(controller.tap_className)Segue", sender: self) 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Protocols/SettingsTableViewControllerDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SettingsTableViewControllerDelegate.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal protocol SettingsTableViewControlerDelegate: class { 9 | 10 | func settingsViewController(_ controller: SettingsTableViewController, didFinishWith settings: Settings) 11 | } 12 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Protocols/ShippingViewControllerDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ShippingViewControllerDelegate.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class goSellSDK.Shipping 9 | 10 | internal protocol ShippingViewControllerDelegate: class { 11 | 12 | func shippingViewController(_ controller: ShippingViewController, didFinishWith shipping: Shipping) 13 | } 14 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Protocols/TaxViewControllerDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TaxViewControllerDelegate.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class goSellSDK.Tax 9 | 10 | internal protocol TaxViewControllerDelegate: class { 11 | 12 | func taxViewController(_ controller: TaxViewController, didFinishWith tax: Tax) 13 | } 14 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_1024.png -------------------------------------------------------------------------------- /Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_120-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_120-1.png -------------------------------------------------------------------------------- /Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_120.png -------------------------------------------------------------------------------- /Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_152.png -------------------------------------------------------------------------------- /Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_167.png -------------------------------------------------------------------------------- /Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_180.png -------------------------------------------------------------------------------- /Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_20.png -------------------------------------------------------------------------------- /Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_29.png -------------------------------------------------------------------------------- /Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_40-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_40-1.png -------------------------------------------------------------------------------- /Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_40-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_40-2.png -------------------------------------------------------------------------------- /Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_40.png -------------------------------------------------------------------------------- /Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_58-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_58-1.png -------------------------------------------------------------------------------- /Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_58.png -------------------------------------------------------------------------------- /Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_60.png -------------------------------------------------------------------------------- /Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_76.png -------------------------------------------------------------------------------- /Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_80-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_80-1.png -------------------------------------------------------------------------------- /Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_80.png -------------------------------------------------------------------------------- /Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/Example/goSellSDKExample/Resources/Assets.xcassets/AppIcon.appiconset/gosell_icon_87.png -------------------------------------------------------------------------------- /Example/goSellSDKExample/Resources/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Example/goSellSDKExample/Resources/Assets.xcassets/background.imageset/5840375-nissan-gtr-iphone-6-wallpaper.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/Example/goSellSDKExample/Resources/Assets.xcassets/background.imageset/5840375-nissan-gtr-iphone-6-wallpaper.jpg -------------------------------------------------------------------------------- /Example/goSellSDKExample/Resources/Assets.xcassets/background.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "5840375-nissan-gtr-iphone-6-wallpaper.jpg", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Example/goSellSDKExample/Resources/Assets.xcassets/ic_checkmark.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_checkmark.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_checkmark@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ic_checkmark@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Example/goSellSDKExample/Resources/Assets.xcassets/ic_checkmark.imageset/ic_checkmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/Example/goSellSDKExample/Resources/Assets.xcassets/ic_checkmark.imageset/ic_checkmark.png -------------------------------------------------------------------------------- /Example/goSellSDKExample/Resources/Assets.xcassets/ic_checkmark.imageset/ic_checkmark@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/Example/goSellSDKExample/Resources/Assets.xcassets/ic_checkmark.imageset/ic_checkmark@2x.png -------------------------------------------------------------------------------- /Example/goSellSDKExample/Resources/Assets.xcassets/ic_checkmark.imageset/ic_checkmark@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/Example/goSellSDKExample/Resources/Assets.xcassets/ic_checkmark.imageset/ic_checkmark@3x.png -------------------------------------------------------------------------------- /Example/goSellSDKExample/Utils/SerializationHelper.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SerializationHelper.swift 3 | // goSellSDKExample 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class goSellSDK.Customer 9 | 10 | internal class SerializationHelper { 11 | 12 | // MARK: - Internal - 13 | // MARK: Methods 14 | 15 | internal static func updateCustomer(_ customer: Customer, with identifier: String) -> EnvironmentCustomer? { 16 | 17 | var allCustomers: [EnvironmentCustomer] = Serializer.deserialize() 18 | guard let index = allCustomers.firstIndex(where: { $0.customer == customer }) else { return nil } 19 | 20 | let envCustomer = allCustomers[index] 21 | envCustomer.customer.identifier = identifier 22 | 23 | allCustomers.remove(at: index) 24 | allCustomers.insert(envCustomer, at: index) 25 | 26 | Serializer.serialize(allCustomers) 27 | 28 | return envCustomer 29 | } 30 | 31 | // MARK: - Private - 32 | // MARK: Methods 33 | 34 | //@available(*, unavailable) private init() {} 35 | } 36 | -------------------------------------------------------------------------------- /Example/goSellSDKExample/goSellSDKExample.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.in-app-payments 6 | 7 | merchant.tap.ApplePayTemplate 8 | merchant.tap.gosell 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | gem 'cocoapods', :git => 'https://github.com/CocoaPods/CocoaPods.git', :tag => '1.7.0.beta.3' 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Tap-Payments 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '11.0' 2 | use_frameworks! 3 | 4 | source 'https://github.com/CocoaPods/Specs.git' 5 | 6 | def shared_pods 7 | 8 | pod 'EditableTextInsetsTextFieldV2' 9 | pod 'TapAdditionsKitV2' 10 | pod 'TapAlertViewControllerV2' 11 | pod 'TapApplicationV2' 12 | pod 'TapBundleLocalizationV2' 13 | pod 'TapCardVlidatorKit-iOS' 14 | pod 'TapEditableViewV2' 15 | pod 'TapErrorReportingV2' 16 | pod 'TapFontsKitV2' 17 | pod 'TapGLKitV2' 18 | pod 'TapKeychainV2' 19 | pod 'TapNetworkManagerV2' 20 | pod 'TapNibViewV2' 21 | pod 'TapResponderChainInputViewV2' 22 | pod 'TapSearchViewV2' 23 | pod 'TapVisualEffectViewV2' 24 | pod 'SwiftyRSA' 25 | 26 | end 27 | 28 | target 'goSellSDK' do 29 | 30 | shared_pods 31 | 32 | end 33 | -------------------------------------------------------------------------------- /docs/badge.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | documentation 17 | 18 | 19 | documentation 20 | 21 | 22 | 100% 23 | 24 | 25 | 100% 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /docs/docsets/goSellSDK.docset/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleIdentifier 6 | com.jazzy.gosellsdk 7 | CFBundleName 8 | goSellSDK 9 | DocSetPlatformFamily 10 | gosellsdk 11 | isDashDocset 12 | 13 | dashIndexFilePath 14 | index.html 15 | isJavaScriptEnabled 16 | 17 | DashDocSetFamily 18 | dashtoc 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/docsets/goSellSDK.docset/Contents/Resources/Documents/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/docs/docsets/goSellSDK.docset/Contents/Resources/Documents/img/carat.png -------------------------------------------------------------------------------- /docs/docsets/goSellSDK.docset/Contents/Resources/Documents/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/docs/docsets/goSellSDK.docset/Contents/Resources/Documents/img/dash.png -------------------------------------------------------------------------------- /docs/docsets/goSellSDK.docset/Contents/Resources/Documents/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/docs/docsets/goSellSDK.docset/Contents/Resources/Documents/img/gh.png -------------------------------------------------------------------------------- /docs/docsets/goSellSDK.docset/Contents/Resources/docSet.dsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/docs/docsets/goSellSDK.docset/Contents/Resources/docSet.dsidx -------------------------------------------------------------------------------- /docs/docsets/goSellSDK.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/docs/docsets/goSellSDK.tgz -------------------------------------------------------------------------------- /docs/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/docs/img/carat.png -------------------------------------------------------------------------------- /docs/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/docs/img/dash.png -------------------------------------------------------------------------------- /docs/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/docs/img/gh.png -------------------------------------------------------------------------------- /goSellSDK.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /goSellSDK.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /goSellSDK.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /goSellSDK.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /goSellSDK.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Client/APIClient+Retrievable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // APIClient+Retrievable.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class TapNetworkManagerV2.TapNetworkRequestOperation 9 | import enum TapNetworkManagerV2.TapURLModel 10 | 11 | internal extension APIClient { 12 | 13 | // MARK: - Internal - 14 | // MARK: Methods 15 | 16 | func retrieveObject(with identifier: String, completion: @escaping Completion) { 17 | 18 | let urlModel = TapURLModel.array(parameters: [identifier]) 19 | let route = T.retrieveRoute 20 | 21 | let operation = TapNetworkRequestOperation(path: route.rawValue, method: .GET, headers: self.staticHTTPHeaders, urlModel: urlModel, bodyModel: nil, responseType: .json) 22 | 23 | self.performRequest(operation, using: route.decoder, completion: completion) 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Enums/AddressFormat.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AddressFormat.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | /// Address format enum. 9 | /// 10 | /// - a: Format A. 11 | /// - b: Format B. 12 | /// - c: Format C. 13 | internal enum AddressFormat: String, Codable { 14 | 15 | case a = "FORMAT_A" 16 | case b = "FORMAT_B" 17 | case c = "FORMAT_C" 18 | } 19 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Enums/CardScheme.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CardScheme.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import enum TapCardVlidatorKit_iOS.CardBrand 9 | 10 | internal struct CardScheme { 11 | 12 | // MARK: - Internal - 13 | // MARK: Properties 14 | 15 | internal let cardBrand: CardBrand 16 | 17 | // MARK: - Private - 18 | // MARK: Methods 19 | 20 | private init(_ brand: CardBrand) { 21 | 22 | self.cardBrand = brand 23 | } 24 | } 25 | 26 | // MARK: - Decodable 27 | extension CardScheme: Decodable { 28 | 29 | internal init(from decoder: Decoder) throws { 30 | 31 | let container = try decoder.singleValueContainer() 32 | let brand = try container.decode(CardBrand.self) 33 | 34 | self.init(brand) 35 | } 36 | } 37 | 38 | // MARK: - Equatable 39 | extension CardScheme: Equatable { 40 | 41 | internal static func == (lhs: CardScheme, rhs: CardScheme) -> Bool { 42 | 43 | return lhs.cardBrand == rhs.cardBrand 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Enums/CardType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AcceptedCardType.swift 3 | // goSellSDK 4 | // 5 | // Created by Osama Rabie on 19/02/2020. 6 | // Copyright © 2020 Tap Payments. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | /// Card Types the merchanty will use to define what types of cards he wants his clients to use 11 | @objcMembers public class CardType:NSObject { 12 | 13 | 14 | var cardType:cardTypes = .All 15 | 16 | public init(cardTypeString:String) { 17 | if cardTypeString.lowercased() == "credit" 18 | { 19 | self.cardType = .Credit 20 | }else if cardTypeString.lowercased() == "debit" 21 | { 22 | self.cardType = .Debit 23 | }else 24 | { 25 | self.cardType = .All 26 | } 27 | } 28 | 29 | public init(cardType:cardTypes) { 30 | self.cardType = cardType 31 | } 32 | 33 | override public func isEqual(_ object: Any?) -> Bool { 34 | if let other = object as? CardType { 35 | return self.cardType == other.cardType 36 | } else { 37 | return false 38 | } 39 | } 40 | } 41 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Enums/ErrorAction.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ErrorAction.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | /// Error action. 9 | internal struct ErrorAction: OptionSet { 10 | 11 | // MARK: - Internal - 12 | // MARK: Properties 13 | 14 | internal let rawValue: Int 15 | 16 | internal static let retry = ErrorAction(rawValue: 1 ) 17 | internal static let alert = ErrorAction(rawValue: 1 << 1) 18 | internal static let closePayment = ErrorAction(rawValue: 1 << 2) 19 | } 20 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Enums/InitializationStatus.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InitializationStatus.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal enum InitializationStatus { 9 | 10 | case notInitiated 11 | case initiated 12 | case succeed 13 | } 14 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Enums/InternalError.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InternalError.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal enum InternalError: Int { 9 | 10 | case invalidCountryCode = 1 11 | case invalidAddressType 12 | case invalidAmountModificatorType 13 | case invalidAuthorizeActionType 14 | case invalidCurrency 15 | case invalidCustomerInfo 16 | case invalidTokenType 17 | case customerAlreadyExists 18 | case cardAlreadyExists 19 | case invalidEmail 20 | case invalidISDNumber 21 | case invalidPhoneNumber 22 | case invalidUnitOfMeasurement 23 | case invalidMeasurement 24 | case invalidEnumValue 25 | case noMerchantData 26 | } 27 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Enums/TapSerializationError.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TapSerializationError.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | /// Serialization error. 9 | /// 10 | /// - wrongData: Wrong data to serialize/deserialize. 11 | internal enum TapSerializationError: Int, Error { 12 | 13 | /// Wrong data to serialize/deserialize. 14 | case wrongData 15 | 16 | // MARK: - Private - 17 | // MARK: Properties 18 | 19 | private var readableType: String { 20 | 21 | switch self { 22 | 23 | case .wrongData: 24 | 25 | return "Wrong data" 26 | } 27 | } 28 | } 29 | 30 | // MARK: - CustomStringConvertible 31 | extension TapSerializationError: CustomStringConvertible { 32 | 33 | public var description: String { 34 | 35 | return self.readableType 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Models/AddressField.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AddressField.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | /// Address field model. 9 | internal struct AddressField: Decodable { 10 | 11 | // MARK: - Internal - 12 | // MARK: Properties 13 | 14 | /// Field name. 15 | internal let name: String 16 | 17 | /// Field input type. 18 | internal let type: AddressFieldInputType 19 | 20 | /// Placeholder text. 21 | internal let placeholder: String 22 | 23 | // MARK: - Private - 24 | 25 | private enum CodingKeys: String, CodingKey { 26 | 27 | case name = "name" 28 | case type = "type" 29 | case placeholder = "place_holder" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Models/AuthenticationRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AuthenticationRequest.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | /// Structure to authenticate the charge. 9 | internal struct AuthenticationRequest: Encodable { 10 | 11 | // MARK: - Internal - 12 | // MARK: Properties 13 | 14 | /// Authentication type. 15 | internal let type: AuthenticationType 16 | 17 | /// Authentication value. 18 | internal let value: String 19 | 20 | // MARK: Methods 21 | 22 | internal init(type: AuthenticationType, value: String) { 23 | 24 | self.type = type 25 | self.value = value 26 | } 27 | 28 | // MARK: - Private - 29 | 30 | private enum CodingKeys: String, CodingKey { 31 | 32 | case type = "type" 33 | case value = "value" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Models/BillingAddressField.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BillingAddressField.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | /// Address field. 9 | internal struct BillingAddressField: Decodable { 10 | 11 | // MARK: - Internal - 12 | // MARK: Properties 13 | 14 | /// Address field name. 15 | internal let name: String 16 | 17 | /// Defines if the field is required 18 | internal let isRequired: Bool 19 | 20 | /// Field input order. 21 | internal let inputOrder: Int 22 | 23 | /// Field display order. 24 | internal let displayOrder: Int 25 | 26 | // MARK: - Private - 27 | 28 | private enum CodingKeys: String, CodingKey { 29 | 30 | case name = "name" 31 | case isRequired = "required" 32 | case inputOrder = "order_by" 33 | case displayOrder = "display_order" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Models/BillingAddressFormat.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BillingAddressFormat.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal struct BillingAddressFormat: Decodable { 9 | 10 | // MARK: - Internal - 11 | // MARK: Properties 12 | 13 | /// Address format name. 14 | internal let name: AddressFormat 15 | 16 | /// Address fields. 17 | internal let fields: [BillingAddressField] 18 | } 19 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Models/CreateCardRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CreateCardRequest.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | /// Request body for Create Card API. 9 | internal struct CreateCardRequest: Encodable { 10 | 11 | // MARK: - Internal - 12 | // MARK: Properties 13 | 14 | /// Card source identifier (token identifier). 15 | internal let source: String 16 | 17 | // MARK: Methods 18 | 19 | /// Initializes create card request from the source of the card. 20 | /// 21 | /// - Parameter source: Card source identifier. 22 | internal init(_ source: Source) { 23 | 24 | self.source = source.identifier 25 | } 26 | 27 | // MARK: - Private - 28 | 29 | private enum CodingKeys: String, CodingKey { 30 | 31 | case source = "source" 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Models/CreateCardVerificationRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CreateCardVerificationRequest.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal struct CreateCardVerificationRequest: Encodable { 9 | 10 | // MARK: - Internal - 11 | // MARK: Properties 12 | 13 | internal let is3DSecureRequired: Bool? 14 | 15 | internal let shouldSaveCard: Bool 16 | 17 | internal let metadata: Metadata? 18 | 19 | internal let customer: Customer 20 | 21 | internal let currency: Currency 22 | 23 | internal let source: SourceRequest 24 | 25 | internal let redirect: TrackingURL 26 | 27 | internal let post: TrackingURL? 28 | 29 | internal let merchant: Merchant? 30 | 31 | // MARK: - Private - 32 | 33 | private enum CodingKeys: String, CodingKey { 34 | 35 | case is3DSecureRequired = "threeDSecure" 36 | case shouldSaveCard = "save_card" 37 | case metadata = "metadata" 38 | case customer = "customer" 39 | case currency = "currency" 40 | case source = "source" 41 | case redirect = "redirect" 42 | case post = "post" 43 | case merchant = "merchant" 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Models/CreateTokenApplePay.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CreateTokenApplePay.swift 3 | // goSellSDK 4 | // 5 | // Created by Osama Rabie on 11/01/2020. 6 | // Copyright © 2020 Tap Payments. All rights reserved. 7 | // 8 | 9 | internal struct CreateTokenApplePay: Encodable,Decodable { 10 | 11 | // MARK: - Internal - 12 | // MARK: Properties 13 | 14 | /// Card identifier. 15 | internal let appleToken: AppleTokenModel 16 | internal let paymentType: String 17 | // MARK: Methods 18 | 19 | /// Initializes the model with decoded apple pay token 20 | /// 21 | /// - Parameters: 22 | /// - appleToken: The base64 apple pay token 23 | internal init(appleToken: AppleTokenModel) { 24 | 25 | self.appleToken = appleToken 26 | self.paymentType = "applepay" 27 | } 28 | 29 | // MARK: - Private - 30 | 31 | private enum CodingKeys: String, CodingKey { 32 | 33 | case appleToken = "token_data" 34 | case paymentType = "type" 35 | } 36 | } 37 | 38 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Models/CreateTokenWithCardDataRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CreateTokenWithCardDataRequest.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | /// Request model for token creation with card data. 9 | internal struct CreateTokenWithCardDataRequest: CreateTokenRequest { 10 | 11 | // MARK: - Internal - 12 | // MARK: Properties 13 | 14 | /// Card to create token for. 15 | internal let card: CreateTokenCard 16 | 17 | internal let merchant: Merchant? 18 | 19 | internal let route: Route = .tokens 20 | 21 | // MARK: - Internal - 22 | // MARK: Methods 23 | 24 | /// Initializes the request with card. 25 | /// 26 | /// - Parameter card: Card. 27 | internal init(card: CreateTokenCard, merchant: Merchant?) { 28 | self.card = card 29 | self.merchant = merchant 30 | } 31 | 32 | // MARK: - Private - 33 | 34 | private enum CodingKeys: String, CodingKey { 35 | case card = "card" 36 | case merchant = "merchant" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Models/CreateTokenWithSavedCardRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CreateTokenWithSavedCardRequest.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | /// Request model for token creation with existing card data. 9 | internal struct CreateTokenWithSavedCardRequest: CreateTokenRequest { 10 | 11 | // MARK: - Internal - 12 | // MARK: Properties 13 | 14 | /// Saved card details. 15 | internal let savedCard: CreateTokenSavedCard 16 | 17 | internal let merchant: Merchant? 18 | 19 | internal let route: Route = .tokens 20 | 21 | // MARK: Methods 22 | 23 | /// Initializes the model with saved card. 24 | /// 25 | /// - Parameter savedCard: Saved card. 26 | internal init(savedCard: CreateTokenSavedCard, merchant: Merchant?) { 27 | self.savedCard = savedCard 28 | self.merchant = merchant 29 | } 30 | 31 | // MARK: - Private - 32 | 33 | private enum CodingKeys: String, CodingKey { 34 | 35 | case savedCard = "saved_card" 36 | case merchant = "merchant" 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Models/DeleteCardResponse.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DeleteCardResponse.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal struct DeleteCardResponse: IdentifiableWithString, Decodable { 9 | 10 | // MARK: - Internal - 11 | // MARK: Properties 12 | 13 | internal let isDeleted: Bool 14 | internal let identifier: String 15 | 16 | // MARK: - Private - 17 | 18 | private enum CodingKeys: String, CodingKey { 19 | 20 | case isDeleted = "deleted" 21 | case identifier = "id" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Models/InternalSDKSettings.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InternalSDKSettings.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | /// Internal SDK settings model 9 | internal struct InternalSDKSettings: Decodable { 10 | 11 | // MARK: - Internal - 12 | // MARK: Properties 13 | 14 | internal static let `default` = InternalSDKSettings(statusDisplayDuration: 5.0, otpResendInterval: 60.0, otpResendAttempts: 3) 15 | 16 | /// Visibility duration of payment status. 17 | internal let statusDisplayDuration: TimeInterval 18 | 19 | /// Time interval between OTP resends. 20 | internal let otpResendInterval: TimeInterval 21 | 22 | /// Number of attempts to resend OTP. 23 | internal let otpResendAttempts: Int 24 | 25 | // MARK: - Private - 26 | 27 | private enum CodingKeys: String, CodingKey { 28 | 29 | case statusDisplayDuration = "status_display_duration" 30 | case otpResendInterval = "otp_resend_interval" 31 | case otpResendAttempts = "otp_resend_attempts" 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Models/ListCardsResponse.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ListCardsResponse.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | /// Response object for List All Cards API. 9 | internal struct ListCardsResponse: Decodable { 10 | 11 | // MARK: - Internal - 12 | // MARK: Properties 13 | 14 | /// Object type. 15 | internal let object: String 16 | 17 | /// Defines if there are more cards to load. 18 | internal let hasMore: Bool 19 | 20 | /// Cards. 21 | internal let cards: [SavedCard] 22 | 23 | // MARK: - Private - 24 | 25 | private enum CodingKeys: String, CodingKey { 26 | 27 | case object = "object" 28 | case hasMore = "has_more" 29 | case cards = "data" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Models/Merchant.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Merchant.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | /// Merchant model. 9 | internal struct Merchant: Codable, OptionallyIdentifiableWithString { 10 | 11 | // MARK: - Internal - 12 | // MARK: Properties 13 | 14 | /// Merchant identifier. 15 | internal private(set) var identifier: String? 16 | 17 | /// Merchant name 18 | internal private(set) var name: String? 19 | 20 | /// Merchant logo URL 21 | internal private(set) var logoURL: URL? 22 | 23 | // MARK: Methods 24 | 25 | /// Initializes merchant with the identifier. 26 | /// 27 | /// - Parameter identifier: Merchant identifier. 28 | internal init(identifier: String) { 29 | 30 | self.identifier = identifier 31 | } 32 | 33 | // MARK: - Private - 34 | 35 | private enum CodingKeys: String, CodingKey { 36 | 37 | case identifier = "id" 38 | case name = "name" 39 | case logoURL = "logo" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Models/Order.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Order.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal struct Order: IdentifiableWithString, Encodable { 9 | 10 | // MARK: - Internal - 11 | // MARK: Properties 12 | 13 | internal let identifier: String 14 | 15 | // MARK: Methods 16 | 17 | internal init(identifier: String) { 18 | 19 | self.identifier = identifier 20 | } 21 | 22 | // MARK: - Private - 23 | 24 | private enum CodingKeys: String, CodingKey { 25 | 26 | case identifier = "id" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Models/SDKSettings.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SDKSettings.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | /// goSell SDK Settings model. 9 | internal class SDKSettings: Decodable { 10 | 11 | // MARK: - Internal - 12 | // MARK: Properties 13 | 14 | /// Data. 15 | internal var data: SDKSettingsData? 16 | 17 | // MARK: - Private - 18 | 19 | private enum CodingKeys: String, CodingKey { 20 | 21 | case data = "data" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Models/TopupChargeModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TopupChargeModel.swift 3 | // goSellSDK 4 | // 5 | // Created by Osama Rabie on 6/24/21. 6 | // 7 | 8 | import Foundation 9 | /// TopUp Charge model. 10 | internal final class TopupChargeModel: NSObject,Codable { 11 | 12 | // MARK: - Public - 13 | // MARK: Properties 14 | 15 | /// The topup charge id 16 | private let id: String 17 | 18 | // MARK: - Private - 19 | 20 | internal enum CodingKeys: String, CodingKey { 21 | 22 | case id = "id" 23 | } 24 | 25 | // MARK: Methods 26 | 27 | init(id: String) { 28 | 29 | self.id = id 30 | } 31 | } 32 | 33 | // MARK: - Decodable 34 | extension TopupChargeModel { 35 | 36 | public convenience init(from decoder: Decoder) throws { 37 | 38 | let container = try decoder.container(keyedBy: CodingKeys.self) 39 | 40 | let id = try container.decode (String.self, forKey: .id) 41 | 42 | self.init(id:id) 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Protocols/Authenticatable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Authenticatable.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal protocol Authenticatable: Decodable { 9 | 10 | /// Unique object identifier. 11 | var identifier: String { get } 12 | 13 | /// Charge authentication if required. 14 | var authentication: Authentication? { get } 15 | 16 | /// Authentication route. 17 | static var authenticationRoute: Route { get } 18 | } 19 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Protocols/AuthorizeProtocol.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AuthorizeProtocol.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal protocol AuthorizeProtocol: ChargeProtocol { 9 | 10 | /// Authorize action. 11 | var authorizeAction: AuthorizeActionResponse { get } 12 | } 13 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Protocols/CreateTokenRequest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CreateTokenRequest.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal protocol CreateTokenRequest: Encodable { 9 | 10 | var route: Route { get } 11 | } 12 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Protocols/EmptyInitializable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // EmptyInitializable.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal protocol EmptyInitializable { 9 | 10 | init() 11 | } 12 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Protocols/IdentifiableWithString.swift: -------------------------------------------------------------------------------- 1 | // 2 | // IdentifiableWithString.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | /// All models that have identifier are conforming to this protocol. 9 | internal protocol IdentifiableWithString { 10 | 11 | // MARK: Properties 12 | 13 | /// Unique identifier of an object. 14 | var identifier: String { get } 15 | } 16 | 17 | 18 | extension Array where Element: Hashable { 19 | func removingDuplicates() -> [Element] { 20 | var addedDict = [Element: Bool]() 21 | 22 | return filter { 23 | addedDict.updateValue(true, forKey: $0) == nil 24 | } 25 | } 26 | 27 | mutating func removeDuplicates() { 28 | self = self.removingDuplicates() 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Protocols/InitializableWithString.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InitializableWithString.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal protocol InitializableWithString { 9 | 10 | init?(string: String) 11 | } 12 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Protocols/OptionallyIdentifiableWithString.swift: -------------------------------------------------------------------------------- 1 | // 2 | // OptionallyIdentifiableWithString.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | /// All models that have identifier are conforming to this protocol. 9 | internal protocol OptionallyIdentifiableWithString { 10 | 11 | // MARK: Properties 12 | 13 | /// Unique identifier of an object. 14 | var identifier: String? { get } 15 | } 16 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Protocols/ProportionalToOrigin.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ProportionalToOrigin.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal protocol ProportionalToOrigin { 9 | 10 | var inUnitsOfOrigin: Decimal { get } 11 | } 12 | 13 | internal extension ProportionalToOrigin { 14 | 15 | func `in`(_ another: Self) -> Decimal { 16 | 17 | return another.inUnitsOfOrigin / self.inUnitsOfOrigin 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Protocols/Retrievable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Retrievable.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal protocol Retrievable: IdentifiableWithString, Decodable { 9 | 10 | static var retrieveRoute: Route { get } 11 | } 12 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Internal/Utils/ErrorUtils.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ErrorUtils.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal class ErrorUtils { 9 | 10 | // MARK: - Internal - 11 | // MARK: Methods 12 | 13 | internal static func createEnumStringInitializationError(for enumerationType: T.Type, value: String) -> TapSDKError { 14 | 15 | let userInfo: [String: String] = [ 16 | 17 | ErrorConstants.UserInfoKeys.enumName: String(describing: enumerationType), 18 | ErrorConstants.UserInfoKeys.enumValue: value 19 | ] 20 | 21 | let underlyingError = NSError(domain: ErrorConstants.internalErrorDomain, code: InternalError.invalidEnumValue.rawValue, userInfo: userInfo) 22 | return TapSDKKnownError(type: .internal, error: underlyingError, response: nil, body: nil) 23 | } 24 | 25 | // MARK: - Private - 26 | // MARK: Methods 27 | 28 | //@available(*, unavailable) private init() { } 29 | } 30 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Public/Enums/SDKMode.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SDKMode.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | /// Enum defining SDK mode. 9 | @objc public enum SDKMode: Int, CaseIterable { 10 | 11 | /// Sandbox mode. 12 | @objc(Sandbox) case sandbox 13 | 14 | /// Production mode. 15 | @objc(Production) case production 16 | } 17 | 18 | // MARK: - CustomStringConvertible 19 | extension SDKMode: CustomStringConvertible { 20 | 21 | public var description: String { 22 | 23 | switch self { 24 | 25 | case .sandbox: return "Sandbox" 26 | case .production: return "Production" 27 | 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Public/Enums/cardType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // cardType.swift 3 | // goSellSDK 4 | // 5 | // Created by Osama Rabie on 01/03/2020. 6 | // Copyright © 2020 Tap Payments. All rights reserved. 7 | // 8 | 9 | 10 | /// Enum defining SDK mode. 11 | @objc public enum cardTypes: Int, CaseIterable { 12 | 13 | @objc(Credit) case Credit 14 | @objc(Debit) case Debit 15 | @objc(All) case All 16 | } 17 | 18 | // MARK: - CustomStringConvertible 19 | extension cardTypes: CustomStringConvertible { 20 | 21 | public var description: String { 22 | 23 | switch self { 24 | case .Credit: return "Credit" 25 | case .Debit: return "Debit" 26 | case .All: return "All" 27 | } 28 | } 29 | } 30 | 31 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Public/Models/Acquirer.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Acquirer.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | /// Acquirer information class. 9 | @objcMembers public final class Acquirer: NSObject, Decodable { 10 | 11 | // MARK: - Public - 12 | // MARK: Properties 13 | 14 | /// Acquirer response. 15 | public private(set) var response: Response? 16 | 17 | // MARK: - Private - 18 | 19 | private enum CodingKeys: String, CodingKey { 20 | 21 | case response = "response" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Public/Models/AuthorizeActionResponse.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AuthorizeActionResponse.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | /// Authorize action response class. 9 | @objcMembers public final class AuthorizeActionResponse: AuthorizeAction { 10 | 11 | // MARK: - Public - 12 | // MARK: Properties 13 | 14 | /// Authorize action status. 15 | public private(set) var status: AuthorizeActionStatus = .failed 16 | 17 | // MARK: - Private - 18 | 19 | private enum CodingKeys: String, CodingKey { 20 | 21 | case type = "type" 22 | case time = "time" 23 | case status = "status" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Public/Models/Metadata.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Metadata.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | /// Metadata object. 9 | public typealias Metadata = [String: String] 10 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Public/Models/SecretKey.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SecretKey.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | /// Secret key class. 9 | @objcMembers public final class SecretKey: NSObject { 10 | 11 | // MARK: - Public - 12 | // MARK: Properties 13 | 14 | /// Sandbox secret key. 15 | public let sandbox: String 16 | 17 | /// Production secret key. 18 | public let production: String 19 | 20 | // MARK: Methods 21 | 22 | /// Initializes secret key with sandbox and production keys. 23 | /// 24 | /// - Parameters: 25 | /// - sandbox: Sandbox key. 26 | /// - production: Production key. 27 | public required init(sandbox: String, production: String) { 28 | 29 | self.sandbox = sandbox 30 | self.production = production 31 | 32 | super.init() 33 | } 34 | 35 | // MARK: - Internal - 36 | // MARK: Properties 37 | 38 | internal static let empty: SecretKey = SecretKey(sandbox: .tap_empty, production: .tap_empty) 39 | } 40 | -------------------------------------------------------------------------------- /goSellSDK/Core/API/Public/Models/Transfer.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Transfer.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | /// Transfer model. 9 | @objcMembers public final class Transfer: NSObject, OptionallyIdentifiableWithString, Decodable { 10 | 11 | // MARK: - Public - 12 | // MARK: Properties 13 | 14 | /// Identifier. 15 | public private(set) var identifier: String? 16 | 17 | /// Transfer amount. 18 | public private(set) var amount: Decimal? 19 | 20 | /// Transfer currency 21 | public private(set) var currency: Currency? 22 | 23 | /// Reversed amount. 24 | public private(set) var reversedAmount: Decimal? 25 | 26 | /// Reversal identifiers. 27 | public private(set) var reversalIdentifiers: [String]? 28 | 29 | // MARK: - Private - 30 | 31 | private enum CodingKeys: String, CodingKey { 32 | 33 | case identifier = "id" 34 | case amount = "amount" 35 | case currency = "currency" 36 | case reversedAmount = "reversed_amount" 37 | case reversalIdentifiers = "reversal_id" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Cells/Collection View/BaseCollectionViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BaseCollectionViewCell.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class UIKit.UICollectionViewCell.UICollectionViewCell 9 | 10 | /// Base Collection View Cell. 11 | internal class BaseCollectionViewCell: UICollectionViewCell { 12 | 13 | internal override func awakeFromNib() { 14 | 15 | super.awakeFromNib() 16 | 17 | self.translatesAutoresizingMaskIntoConstraints = true 18 | self.contentView.autoresizingMask = [.flexibleWidth, .flexibleHeight] 19 | 20 | if let glowingCell = self as? GlowingViewHandler { 21 | 22 | glowingCell.prepareForGlowing() 23 | } 24 | 25 | self.tap_updateLayoutDirectionIfRequired() 26 | } 27 | 28 | internal override func prepareForReuse() { 29 | 30 | super.prepareForReuse() 31 | 32 | if let glowingCell = self as? GlowingViewHandler { 33 | 34 | glowingCell.prepareForGlowing() 35 | } 36 | 37 | self.tap_updateLayoutDirectionIfRequired() 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Cells/Table View/EmptyTableViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // EmptyTableViewCell.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import CoreGraphics 9 | import class UIKit.UITableViewCell.UITableViewCell 10 | 11 | internal class EmptyTableViewCell: BaseTableViewCell { 12 | 13 | // MARK: - Internal - 14 | // MARK: Properties 15 | 16 | internal weak var model: EmptyTableViewCellModel? 17 | } 18 | 19 | // MARK: - LoadingWithModelCell 20 | extension EmptyTableViewCell: LoadingWithModelCell { 21 | 22 | internal func updateContent(animated: Bool) { 23 | self.backgroundColor = UIColor.clear 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Cells/Table View/GroupTableViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GroupTableViewCell.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import CoreGraphics 9 | import class UIKit.UILabel.UILabel 10 | import class UIKit.UITableViewCell.UITableViewCell 11 | 12 | internal class GroupTableViewCell: BaseTableViewCell { 13 | 14 | // MARK: - Internal - 15 | // MARK: Properties 16 | 17 | internal weak var model: GroupTableViewCellModel? 18 | 19 | // MARK: - Private - 20 | // MARK: Properties 21 | 22 | @IBOutlet private weak var titleLabel: UILabel? 23 | } 24 | 25 | // MARK: - LoadingWithModelCell 26 | extension GroupTableViewCell: LoadingWithModelCell { 27 | 28 | internal func updateContent(animated: Bool) { 29 | 30 | self.titleLabel?.setLocalizedText(self.model?.key) 31 | self.titleLabel?.setTextStyle(Theme.current.paymentOptionsCellStyle.group.titleStyle) 32 | 33 | self.backgroundColor = UIColor.clear 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Cells/Table View/PaymentCardCellSeprator.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PaymentCardCellSeprator.swift 3 | // goSellSDK 4 | // 5 | // Created by Osama Rabie on 27/01/2020. 6 | // Copyright © 2020 Tap Payments. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class PaymentCardCellSeprator: UIView { 12 | 13 | override init(frame: CGRect) { 14 | super.init(frame: frame) 15 | fillBackGroundColor() 16 | } 17 | 18 | required init?(coder: NSCoder) { 19 | super.init(coder: coder) 20 | fillBackGroundColor() 21 | } 22 | 23 | 24 | func fillBackGroundColor() 25 | { 26 | self.backgroundColor = UIColor.init(tap_hex: "E1E1E1")?.loadCompatibleDarkModeColor(forColorNamed: "DefaultCardSeparatorColor") 27 | } 28 | 29 | } 30 | 31 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Cells/Table View/PaymentCellSeprator.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PaymentCellSeprator.swift 3 | // goSellSDK 4 | // 5 | // Created by Osama Rabie on 21/01/2020. 6 | // Copyright © 2020 Tap Payments. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class PaymentCellSeprator: UIView { 12 | 13 | override init(frame: CGRect) { 14 | super.init(frame: frame) 15 | fillBackGroundColor() 16 | } 17 | 18 | required init?(coder: NSCoder) { 19 | super.init(coder: coder) 20 | fillBackGroundColor() 21 | } 22 | 23 | 24 | func fillBackGroundColor() 25 | { 26 | self.backgroundColor = UIColor.init(tap_hex: "E1E1E1")?.loadCompatibleDarkModeColor(forColorNamed: "DefaultSeparatorCellColor") 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Data/WebPaymentURLDecision.swift: -------------------------------------------------------------------------------- 1 | // 2 | // WebPaymentURLDecision.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | /// Web Payment URL decision. 9 | internal struct WebPaymentURLDecision { 10 | 11 | // MARK: - Internal - 12 | // MARK: Properties 13 | 14 | /// Defines if URL should be loaded. 15 | internal let shouldLoad: Bool 16 | 17 | /// Defines if web payment screen should be closed. 18 | internal let shouldCloseWebPaymentScreen: Bool 19 | 20 | /// Defines if web payment flow redirections are finished. 21 | internal let redirectionFinished: Bool 22 | 23 | /// Charge or authorize identifier. 24 | internal let tapID: String? 25 | } 26 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Enums/AppearanceMode.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppearanceMode.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | /// Internal SDK appearance mode. 9 | /// 10 | /// - fullscreen: Fullscreen mode. 11 | /// - windowed: Windowed mode. 12 | internal enum AppearanceMode: String, Decodable { 13 | 14 | case fullscreen 15 | case windowed 16 | 17 | // MARK: - Internal - 18 | // MARK: Methods 19 | 20 | internal init(publicAppearance: SDKAppearanceMode, transactionMode: TransactionMode) { 21 | 22 | switch publicAppearance { 23 | 24 | case .fullscreen: self = .fullscreen 25 | case .windowed: self = .windowed 26 | case .default: self = (transactionMode == .cardSaving || transactionMode == .cardTokenization) ? .windowed : .fullscreen 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Enums/Image.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Image.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class UIKit.UIImage.UIImage 9 | 10 | /// Enum representing image with the source to load from. 11 | /// 12 | /// - named: Local image with `name` from `bundle` 13 | /// - remote: Remote image with source url. 14 | internal enum Image: Equatable { 15 | 16 | case named(String, Bundle) 17 | case ready(UIImage) 18 | case remote(URL) 19 | } 20 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Enums/LocalizedTextAlignment.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LocalizedTextAlignment.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import enum UIKit.NSText.NSTextAlignment 9 | 10 | internal enum LocalizedTextAlignment: String, Decodable { 11 | 12 | case left = "left" 13 | case center = "center" 14 | case right = "right" 15 | case leading = "leading" 16 | case trailing = "trailing" 17 | case natural = "natural" 18 | case justified = "justified" 19 | 20 | // MARK: Properties 21 | 22 | internal var textAlignment: NSTextAlignment { 23 | 24 | switch self { 25 | 26 | case .left: return .left 27 | case .center: return .center 28 | case .right: return .right 29 | case .leading: return LocalizationManager.shared.layoutDirection == .leftToRight ? .left : .right 30 | case .trailing: return LocalizationManager.shared.layoutDirection == .leftToRight ? .right : .left 31 | case .natural: return .natural 32 | case .justified: return .justified 33 | 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Enums/OTPTimerState.swift: -------------------------------------------------------------------------------- 1 | // 2 | // OTPTimerState.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal enum OTPTimerState { 9 | 10 | case ticking(TimeInterval) 11 | case notTicking 12 | case attemptsFinished 13 | } 14 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Enums/PaymentStatus.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PaymentStatus.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal enum PaymentStatus { 9 | 10 | case cancelled 11 | case successfulCharge(Charge) 12 | case successfulAuthorize(Authorize) 13 | case successfulCardSave(CardVerification) 14 | case successfulCardTokenize(Token, Bool) 15 | case chargeFailure(Charge?, TapSDKError?) 16 | case authorizationFailure(Authorize?, TapSDKError?) 17 | case cardSaveFailure(CardVerification?, TapSDKError?) 18 | case cardTokenizeFailure(TapSDKError) 19 | } 20 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Enums/StatusBarStyle.swift: -------------------------------------------------------------------------------- 1 | // 2 | // StatusBarStyle.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import enum UIKit.UIApplication.UIStatusBarStyle 9 | 10 | internal enum StatusBarStyle: String, Decodable { 11 | 12 | case light = "light" 13 | case dark = "dark" 14 | 15 | // MARK: - Internal - 16 | // MARK: Properties 17 | 18 | internal var uiStatusBarStyle: UIStatusBarStyle { 19 | 20 | switch self { 21 | 22 | case .light: return .lightContent 23 | case .dark: return .default 24 | 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Enums/TextInputType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TextInputType.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal enum TextInputType { 9 | 10 | case text 11 | case digits 12 | } 13 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Enums/ValidationType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ValidationType.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal enum ValidationType { 9 | 10 | case cardNumber 11 | case expirationDate 12 | case cvv 13 | case nameOnCard 14 | case addressOnCard 15 | case saveCard 16 | } 17 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Enums/ViewControllerOperation.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewControllerOperation.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal enum ViewControllerOperation { 9 | 10 | case presentation 11 | case dismissal 12 | } 13 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Extensions/AddressType+Additions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AddressType+Additions.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | extension AddressType: Transformable { 9 | 10 | internal init?(untransformedValue: Any?) { 11 | 12 | if let stringValue = untransformedValue as? String { 13 | 14 | try? self.init(string: stringValue) 15 | } 16 | else if let addressType = untransformedValue as? AddressType { 17 | 18 | self.init(rawValue: addressType.rawValue) 19 | } 20 | else { 21 | 22 | return nil 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Extensions/AmountedCurrency+Additions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AmountedCurrency+Additions.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal extension AmountedCurrency { 9 | 10 | // MARK: - Internal - 11 | // MARK: Properties 12 | 13 | var displayValue: String { 14 | 15 | return CurrencyFormatter.shared.format(self) 16 | } 17 | 18 | var readableCurrencyName: String { 19 | 20 | let locale = LocalizationManager.shared.selectedLocale 21 | 22 | if let currencyName = locale.localizedString(forCurrencyCode: self.currency.isoCode) { 23 | 24 | return currencyName.prefix(1).capitalized + currencyName.dropFirst() 25 | } 26 | else { 27 | 28 | return self.currency.isoCode 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Extensions/BillingAddressField+Additions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BillingAddressField+Additions.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal extension BillingAddressField { 9 | 10 | // MARK: - Internal - 11 | // MARK: Properties 12 | 13 | func canBeFilled(with data: Any?, considering specification: AddressField) -> Bool { 14 | 15 | switch specification.type { 16 | 17 | case .dropdown: return true 18 | 19 | case .textInput(let inputType): 20 | 21 | if data == nil { 22 | 23 | return !self.isRequired 24 | } 25 | 26 | guard let string = data as? String else { return false } 27 | if self.isRequired && string.isEmpty { return false } 28 | 29 | switch inputType { 30 | 31 | case .digits: 32 | 33 | return string.tap_containsOnlyDigits 34 | 35 | case .text: 36 | 37 | return true 38 | } 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Extensions/Bundle+Additions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Bundle+Additions.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal extension Bundle { 9 | 10 | static let goSellSDKResources: Bundle = { 11 | 12 | guard let result = Bundle(for: PaymentContentViewController.self).tap_childBundle(named: Constants.goSellSDKResourcesBundleName) else { 13 | 14 | fatalError("There is no \(Constants.goSellSDKResourcesBundleName) bundle.") 15 | } 16 | 17 | return result 18 | }() 19 | 20 | private struct Constants { 21 | 22 | fileprivate static let goSellSDKResourcesBundleName = "goSellSDKResources" 23 | 24 | //@available(*, unavailable) private init() { } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Extensions/Comparable+Additions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Comparable+Additions.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal extension Comparable { 9 | 10 | // MARK: - Internal - 11 | // MARK: Methods 12 | 13 | func tap_isIn(_ range: ClosedRange) -> Bool { 14 | 15 | return range.contains(self) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Extensions/EditableTextInsetsTextField+Additions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // EditableTextInsetsTextFieldV2.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class EditableTextInsetsTextFieldV2.EditableTextInsetsTextField 9 | 10 | internal extension EditableTextInsetsTextField { 11 | 12 | // MARK: - Internal - 13 | // MARK: Properties 14 | 15 | var localizedClearButtonPosition: EditableTextInsetsTextField.ClearButtonPosition { 16 | 17 | get { 18 | 19 | return self.clearButtonPosition 20 | } 21 | set { 22 | 23 | let ltr = LocalizationManager.shared.layoutDirection == .leftToRight 24 | 25 | var desiredPosition: EditableTextInsetsTextField.ClearButtonPosition 26 | 27 | switch newValue { 28 | 29 | case .left: desiredPosition = ltr ? .left : .right 30 | case .right: desiredPosition = ltr ? .right : .left 31 | 32 | } 33 | 34 | self.clearButtonPosition = desiredPosition 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Extensions/Equatable+Additions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Equatable+Additions.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal extension Equatable { 9 | 10 | // MARK: - Internal - 11 | // MARK: Methods 12 | 13 | func tap_isIn(_ array: [Self]) -> Bool { 14 | 15 | return array.contains(self) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Extensions/NSTextAlignment+Additions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSTextAlignment+Additions.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import enum UIKit.NSText.NSTextAlignment 9 | 10 | internal extension NSTextAlignment { 11 | 12 | // MARK: - Internal - 13 | // MARK: Properties 14 | 15 | var tap_localizedTextAlignment: LocalizedTextAlignment { 16 | 17 | switch self { 18 | 19 | case .left: return .left 20 | case .center: return .center 21 | case .right: return .right 22 | case .natural: return .natural 23 | case .justified: return .justified 24 | 25 | @unknown default: return .left 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Extensions/String+Additions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // String+Additions.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | // MARK: - Transformable 9 | extension String: Transformable { 10 | 11 | internal init?(untransformedValue: Any?) { 12 | 13 | guard let stringValue = untransformedValue as? String else { return nil } 14 | self.init(stringValue) 15 | } 16 | 17 | internal func trunc(length: Int, trailing: String = "…") -> String { 18 | return (self.count > length) ? self.prefix(length) + trailing : self 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Extensions/TapSearchView+Additions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TapSearchView+Additions.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class TapSearchViewV2.TapSearchView 9 | 10 | internal extension TapSearchView { 11 | 12 | // MARK: - Internal - 13 | // MARK: Methods 14 | 15 | func setStyle(_ style: SearchBarStyle) { 16 | self.searchField.setTextStyle(style.text, style.placeholder) 17 | self.searchHolderBackgroundColor = style.searchHolderBackgroundColor.color 18 | } 19 | 20 | func setBackGround(_ color: UIColor) { 21 | self.backgroundColor = color 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Extensions/UIButton+Additions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIButton+Additions.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class TapAdditionsKitV2.UIButton 9 | 10 | internal extension UIButton { 11 | 12 | func setTitleStyle(_ style: TextStyle) { 13 | 14 | self.titleLabel?.font = style.font.localized 15 | self.titleLabel?.textAlignment = style.alignment.textAlignment 16 | self.titleLabel?.textColor = style.color.color 17 | } 18 | } 19 | 20 | // MARK: - SingleLocalizable 21 | extension UIButton: SingleLocalizable { 22 | 23 | internal func setLocalized(text: String?) { 24 | 25 | self.tap_title = text 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Extensions/UIColor+Additions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIColor+Additions.swift 3 | // goSellSDK 4 | // 5 | // Created by Osama Rabie on 21/01/2020. 6 | // Copyright © 2020 Tap Payments. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | internal extension UIColor 12 | { 13 | func loadCompatibleDarkModeColor(forColorNamed:String)->UIColor 14 | { 15 | 16 | if #available(iOS 13.0, *), Process.shared.externalSession?.dataSource?.uiModeDisplay?.userInterface == .dark { 17 | 18 | if let color = UIColor(named: forColorNamed, in: .goSellSDKResources, compatibleWith: nil) 19 | { 20 | return color 21 | } 22 | } 23 | return self 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Extensions/UIEdgeInsets+Additions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIEdgeInsets+Additions.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import struct UIKit.UIGeometry.UIEdgeInsets 9 | 10 | internal extension UIEdgeInsets { 11 | 12 | // MARK: - Internal - 13 | // MARK: Properties 14 | 15 | var tap_localized: UIEdgeInsets { 16 | 17 | switch LocalizationManager.shared.layoutDirection { 18 | 19 | case .leftToRight: return self 20 | case .rightToLeft: return self.tap_mirrored 21 | 22 | @unknown default: 23 | 24 | print("Unknown layout direction to localize edge insets: \(LocalizationManager.shared.layoutDirection)") 25 | return self 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Extensions/UIImage+Additions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+Additions.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class UIKit.UIImage.UIImage 9 | 10 | internal extension UIImage { 11 | 12 | // MARK: - Internal - 13 | // MARK: Properties 14 | 15 | var tap_asResourceImage: ResourceImage { 16 | 17 | return ResourceImage(data: self.tap_pngData!, scale: scale)! 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Extensions/UILabel+Additions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UILabel+Additions.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class UIKit.UILabel.UILabel 9 | 10 | extension UILabel { 11 | 12 | internal func setTextStyle(_ textStyle: TextStyle) { 13 | DispatchQueue.main.async { 14 | self.textAlignment = textStyle.alignment.textAlignment 15 | self.font = textStyle.font.localized 16 | self.textColor = textStyle.color.color 17 | } 18 | } 19 | } 20 | 21 | extension UILabel: SingleLocalizable { 22 | 23 | // MARK: - Internal - 24 | // MARK: Properties 25 | 26 | internal var tap_localizedTextAlignment: LocalizedTextAlignment { 27 | 28 | get { 29 | 30 | return self.textAlignment.tap_localizedTextAlignment 31 | } 32 | set { 33 | 34 | self.textAlignment = newValue.textAlignment 35 | } 36 | } 37 | 38 | // MARK: Methods 39 | 40 | internal func setLocalized(text: String?) { 41 | 42 | self.text = text 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Extensions/UIStoryboard+Additions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIStoryboard+Additions.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class UIKit.UIStoryboard.UIStoryboard 9 | 10 | internal extension UIStoryboard { 11 | 12 | // MARK: - Internal - 13 | // MARK: Properties 14 | 15 | /// Reference to payment storyboard. 16 | static let goSellSDKPayment = UIStoryboard(name: UIStoryboardGoSellConstants.paymentStoryboardName, bundle: .goSellSDKResources) 17 | 18 | /// Reference to popups storyboard. 19 | static let goSellSDKPopups = UIStoryboard(name: UIStoryboardGoSellConstants.popupsStoryboardName, bundle: .goSellSDKResources) 20 | 21 | // MARK: - Private - 22 | 23 | private struct UIStoryboardGoSellConstants { 24 | 25 | fileprivate static let paymentStoryboardName = "Payment" 26 | fileprivate static let popupsStoryboardName = "Popups" 27 | 28 | //@available(*, unavailable) private init() { } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Extensions/UIView+Additions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+Additions.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import struct TapAdditionsKitV2.TypeAlias 9 | import enum UIKit.UIView.UISemanticContentAttribute 10 | import class UIKit.UIView.UIView 11 | 12 | internal extension UIView { 13 | 14 | // MARK: - Internal - 15 | // MARK: Methods 16 | 17 | func tap_updateLayoutDirectionIfRequired() { 18 | 19 | if #available(iOS 9.0, *) { 20 | 21 | let requiredContentAttribute: UISemanticContentAttribute = LocalizationManager.shared.layoutDirection == .rightToLeft ? .forceRightToLeft : .forceLeftToRight 22 | if requiredContentAttribute != self.semanticContentAttribute { 23 | 24 | self.tap_applySemanticContentAttribute(requiredContentAttribute) 25 | } 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Extensions/UIWindow.Level+Additions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIWindow.Level+Additions.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class UIKit.UIWindow.UIWindow 9 | 10 | #if !swift(>=4.2) 11 | import var UIKit.UIWindow.UIWindowLevelStatusBar 12 | #endif 13 | 14 | internal extension UIWindow.Level { 15 | 16 | static var tap_statusBar: UIWindow.Level { 17 | 18 | #if swift(>=4.2) 19 | return .statusBar 20 | #else 21 | return UIWindowLevelStatusBar 22 | #endif 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Process/Process.AddressInputHandler.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PaymentProcess.AddressInputHandler.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal protocol AddressInputHandlerInterface { 9 | 10 | func prepareAddressInputController(_ addressInputController: AddressInputViewController) 11 | } 12 | 13 | internal extension Process { 14 | 15 | final class AddressInputHandler: AddressInputHandlerInterface { 16 | 17 | // MARK: - Internal - 18 | // MARK: Properties 19 | 20 | internal unowned let process: ProcessInterface 21 | 22 | // MARK: Methods 23 | 24 | internal init(process: ProcessInterface) { 25 | 26 | self.process = process 27 | } 28 | 29 | internal func prepareAddressInputController(_ addressInputController: AddressInputViewController) { 30 | 31 | guard let cardInputCellViewModel = self.process.viewModelsHandlerInterface.cellModels(of: CardInputTableViewCellModel.self).first else { return } 32 | guard let validator = cardInputCellViewModel.validator(of: .addressOnCard) as? CardAddressValidator else { return } 33 | 34 | addressInputController.setValidator(validator) 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Process/Process.Wrapped.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Process.ImplementationWrapper.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal extension Process { 9 | 10 | final class Wrapped { 11 | 12 | internal func implementation() -> Implementation? { 13 | 14 | return self.erasedTypeImplementation as? Process.Implementation 15 | } 16 | 17 | internal init(_ implementation: Process.Implementation) { 18 | 19 | self.erasedTypeImplementation = implementation 20 | } 21 | 22 | // MARK: - Private - 23 | // MARK: Properties 24 | 25 | private let erasedTypeImplementation: Any 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Process/ProcessHandlerInterface.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ProcessHandlerInterface.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import protocol TapAdditionsKitV2.ClassProtocol 9 | 10 | internal protocol ProcessHandlerInterface: ClassProtocol { 11 | 12 | associatedtype Mode 13 | associatedtype ProcessClass: ProcessGenericInterface where ProcessClass.HandlerMode == Self.Mode 14 | 15 | var process: ProcessClass { get } 16 | 17 | init(process: ProcessClass) 18 | } 19 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Process/ProcessMode.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ProcessMode.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal protocol ProcessMode {} 9 | internal protocol Payment: ProcessMode {} 10 | internal protocol CardSaving: ProcessMode {} 11 | internal protocol CardTokenization: ProcessMode {} 12 | 13 | internal class ProcessModeClass: ProcessMode {} 14 | 15 | internal class PaymentClass: ProcessModeClass, Payment {} 16 | internal class CardSavingClass: ProcessModeClass, CardSaving {} 17 | internal class CardTokenizationClass: ProcessModeClass, CardTokenization {} 18 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/AddressFieldsDataManagerLoadingListener.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AddressFieldsDataManagerLoadingListener.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import protocol TapAdditionsKitV2.ClassProtocol 9 | 10 | internal protocol AddressFieldsDataManagerLoadingListener: ClassProtocol { 11 | 12 | func addressFieldsDataManagerDidStartLoadingFormats() 13 | func addressFieldsDataManagerDidStopLoadingFormats() 14 | } 15 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/BindingWithModelCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BindingWithModelCell.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal protocol BindingWithModelCell: LoadingWithModelCell { 9 | 10 | var isContentBinded: Bool { get } 11 | 12 | /// Binds cell's content with the model (e.g. setting up table view data source with the model ). 13 | func bindContent() 14 | 15 | /// Unbinds cell's content from the model. 16 | func unbindContent() 17 | } 18 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/CardAddressDataStorage.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CardAddressDataStorage.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import protocol TapAdditionsKitV2.ClassProtocol 9 | 10 | internal protocol CardAddressDataStorage: ClassProtocol { 11 | 12 | func cardInputData(for field: BillingAddressField) -> Any? 13 | } 14 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/CardAddressInputListener.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CardAddressInputListener.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import protocol TapAdditionsKitV2.ClassProtocol 9 | 10 | /// Protocol to listen to input changes. 11 | internal protocol CardAddressInputListener: ClassProtocol { 12 | 13 | /// Notifies the receiver that input has changed in a given field. 14 | /// 15 | /// - Parameters: 16 | /// - field: Input field. 17 | /// - value: Input value. 18 | func inputChanged(in field: BillingAddressField, to value: Any?) 19 | } 20 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/CardBrandChangeReporting.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CardBrandChangeReporting.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import protocol TapAdditionsKitV2.ClassProtocol 9 | 10 | internal protocol CardBrandChangeReporting: ClassProtocol { 11 | 12 | func cardNumberValidator(_ validator: CardNumberValidator, cardNumberInputChanged cardNumber: String) 13 | func recognizedCardBrandChanged(_ definedCardBrand: BrandWithScheme) 14 | } 15 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/CardCollectionViewCellLoading.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CardCollectionViewCellLoading.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import protocol TapAdditionsKitV2.ClassProtocol 9 | import class UIKit.UIImage.UIImage 10 | 11 | internal protocol CardCollectionViewCellLoading: ClassProtocol { 12 | 13 | var isSelected: Bool { get } 14 | var smallImage: UIImage? { get } 15 | var bigImage: UIImage { get } 16 | var checkmarkImage: UIImage { get } 17 | var currencyLabelText: String { get } 18 | var cardNumberText: String { get } 19 | 20 | var deleteCardImage: UIImage { get } 21 | 22 | var isDeleteCellMode: Bool { get } 23 | 24 | func cellTapDetected() 25 | 26 | func cellLongPressDetected() 27 | 28 | func deleteCardButtonClicked() 29 | } 30 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/CardScannerViewControllerDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CardScannerViewControllerDelegate.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import protocol TapAdditionsKitV2.ClassProtocol 9 | 10 | internal protocol CardScannerViewControllerDelegate: ClassProtocol { 11 | 12 | func cardScannerController(_ scannerController: CardScannerViewController, didScan cardNumber: String?, expirationDate: ExpirationDate?, cvv: String?, cardholderName: String?) 13 | } 14 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/CardValidatorDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CardValidatorDelegate.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import protocol TapAdditionsKitV2.ClassProtocol 9 | 10 | internal protocol CardValidatorDelegate: ClassProtocol { 11 | 12 | func validationStateChanged(to valid: Bool, on type: ValidationType) 13 | 14 | func cardValidator(_ validator: CardValidator, inputDataChanged data: Any?) 15 | } 16 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/CountrySelectionViewControllerDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CountrySelectionViewControllerDelegate.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import protocol TapAdditionsKitV2.ClassProtocol 9 | 10 | internal protocol CountrySelectionViewControllerDelegate: ClassProtocol { 11 | 12 | func countriesSelectionViewControllerDidFinish(with country: Country, changed: Bool) 13 | } 14 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/CurrencySelectionViewControllerDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CurrencySelectionViewControllerDelegate.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import protocol TapAdditionsKitV2.ClassProtocol 9 | 10 | internal protocol CurrencySelectionViewControllerDelegate: ClassProtocol { 11 | 12 | func currencySelectionViewControllerDidFinish(with currency: AmountedCurrency, changed: Bool) 13 | } 14 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/DataManagerWithFilteredData.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DataManagerWithFilteredData.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import protocol TapAdditionsKitV2.ClassProtocol 9 | 10 | internal protocol DataManagerWithFilteredData: ClassProtocol { 11 | 12 | associatedtype DataModel: Filterable 13 | 14 | var filterQuery: String? { get set } 15 | 16 | var allData: [DataModel] { get } 17 | var filteredData: [DataModel] { get set } 18 | } 19 | 20 | internal extension DataManagerWithFilteredData { 21 | 22 | func setFilter(_ query: String?) { 23 | 24 | self.filterQuery = query 25 | 26 | if let nonnullQuery = query, !nonnullQuery.isEmpty { 27 | 28 | self.filteredData = self.allData.filter { $0.matchesFilter(nonnullQuery) } 29 | } 30 | else { 31 | 32 | self.filteredData = self.allData 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/DataValidation.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DataValidation.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import protocol TapAdditionsKitV2.ClassProtocol 9 | import class UIKit.UITextField.UITextField 10 | 11 | /// Data validation protocol. 12 | internal protocol DataValidation: ClassProtocol { 13 | 14 | var validationType: ValidationType { get } 15 | 16 | var isDataValid: Bool { get } 17 | 18 | func validate() 19 | } 20 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/Filterable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Filterable.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal protocol Filterable { 9 | 10 | func matchesFilter(_ filterText: String) -> Bool 11 | } 12 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/FilterableByCurrency.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FilterableByCurrency.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal protocol FilterableByCurrency { 9 | 10 | var supportedCurrencies: [Currency] { get } 11 | } 12 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/InstantiatableFromStoryboard.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InstantiatableFromStoryboard.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class UIKit.UIStoryboard.UIStoryboard 9 | import class UIKit.UIViewController.UIViewController 10 | 11 | internal protocol InstantiatableFromStoryboard where Self: UIViewController { 12 | 13 | static var hostingStoryboard: UIStoryboard { get } 14 | } 15 | 16 | internal extension InstantiatableFromStoryboard { 17 | 18 | static func instantiate() -> Self { 19 | 20 | let identifier = self.tap_className 21 | guard let result = self.hostingStoryboard.instantiateViewController(withIdentifier: identifier) as? Self else { 22 | 23 | fatalError("Unable to load \(identifier) from storyboard.") 24 | } 25 | 26 | return result 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/InteractivePopViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InteractivePopViewController.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | @objc internal protocol InteractivePopViewController { 9 | 10 | var interactivePopTransition: UINavigationControllerPopInteractionController? { get } 11 | } 12 | 13 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/InternalSessionProtocol.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InternalSessionProtocol.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal protocol InternalSessionProtocol: SessionProtocol { 9 | 10 | var externalSession: SessionProtocol { get } 11 | } 12 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/LayoutDirectionObserver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LayoutDirectionObserver.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import protocol TapAdditionsKitV2.ClassProtocol 9 | import class UIKit.UIView.UIView 10 | 11 | internal protocol LayoutDirectionObserver: ClassProtocol { 12 | 13 | var viewToUpdateLayoutDirection: UIView { get } 14 | func layoutDirectionChanged() 15 | } 16 | 17 | internal extension LayoutDirectionObserver { 18 | 19 | func startMonitoringLayoutDirectionChanges() -> NSObjectProtocol { 20 | 21 | return NotificationCenter.default.addObserver(forName: .tap_sdkLayoutDirectionChanged, object: nil, queue: .main) { [weak self] _ in 22 | 23 | self?.viewToUpdateLayoutDirection.tap_updateLayoutDirectionIfRequired() 24 | self?.layoutDirectionChanged() 25 | } 26 | } 27 | 28 | func stopMonitoringLayoutDirectionChanges(_ observation: Any?) { 29 | 30 | if let nonnullObservation = observation { 31 | 32 | NotificationCenter.default.removeObserver(nonnullObservation, name: .tap_sdkLayoutDirectionChanged, object: nil) 33 | } 34 | } 35 | 36 | func layoutDirectionChanged() {} 37 | } 38 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/ListValue.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ListValue.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | /// List value protocol. 9 | internal protocol ListValue: Filterable { 10 | 11 | var displayValue: String { get } 12 | var displayInTheListValue: String { get } 13 | } 14 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/LoadingWithModelCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LoadingWithModelCell.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import protocol TapAdditionsKitV2.ClassProtocol 9 | 10 | internal protocol LoadingWithModelCell: ClassProtocol { 11 | 12 | associatedtype ModelType = CellViewModel 13 | 14 | /// Reference to the model. 15 | var model: ModelType? { get set } 16 | 17 | /// Updates content of the receiver, optionally animated. 18 | func updateContent(animated: Bool) 19 | } 20 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/LocalizationObserver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LocalizationObserver.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import protocol TapAdditionsKitV2.ClassProtocol 9 | 10 | internal protocol LocalizationObserver: ClassProtocol { 11 | 12 | func localizationChanged() 13 | } 14 | 15 | internal extension LocalizationObserver { 16 | 17 | func startMonitoringLocalizationChanges() -> NSObjectProtocol { 18 | 19 | return NotificationCenter.default.addObserver(forName: .tap_sdkLanguageChanged, object: nil, queue: .main) { [weak self] _ in 20 | 21 | self?.localizationChanged() 22 | } 23 | } 24 | 25 | func stopMonitoringLocalizationChanges(_ observation: Any?) { 26 | 27 | if let nonnullObservation = observation { 28 | 29 | NotificationCenter.default.removeObserver(nonnullObservation) 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/NavigationContentViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NavigationContentViewController.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import CoreGraphics 9 | 10 | internal protocol NavigationContentViewController { 11 | 12 | var contentTopOffset: CGFloat { get } 13 | } 14 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/OTPViewControllerDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // OTPViewControllerDelegate.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import protocol TapAdditionsKitV2.ClassProtocol 9 | 10 | internal protocol OTPViewControllerDelegate: ClassProtocol { 11 | 12 | func otpViewControllerResendButtonTouchUpInside(_ controller: OTPViewController) 13 | func otpViewController(_ controller: OTPViewController, didEnter code: String) 14 | func otpViewControllerDidCancel(_ controller: OTPViewController) 15 | } 16 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/PaymentOptionCellViewModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PaymentOptionCellViewModel.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import protocol TapAdditionsKitV2.ClassProtocol 9 | 10 | internal protocol PaymentOptionCellViewModel: ClassProtocol { 11 | 12 | // MARK: Properties 13 | 14 | var paymentOption: PaymentOption? { get } 15 | 16 | var isSelected: Bool { get set } 17 | 18 | var indexPathOfCellToSelect: IndexPath? { get } 19 | 20 | var isReadyForPayment: Bool { get } 21 | 22 | var affectsPayButtonState: Bool { get } 23 | 24 | var initiatesPaymentOnSelection: Bool { get } 25 | 26 | var errorCode: ErrorCode? { get } 27 | } 28 | 29 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/PopupOverlaySupport.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PopupOverlaySupport.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import protocol TapAdditionsKitV2.ClassProtocol 9 | import struct TapAdditionsKitV2.TypeAlias 10 | import class UIKit.NSLayoutConstraint.NSLayoutConstraint 11 | import class UIKit.UIView.UIView 12 | 13 | internal protocol PopupOverlaySupport: ClassProtocol { 14 | 15 | var topOffsetOverlayConstraint: NSLayoutConstraint? { get } 16 | var bottomOffsetOverlayConstraint: NSLayoutConstraint? { get } 17 | var bottomOverlayView: UIView? { get } 18 | var layoutView: UIView { get } 19 | 20 | func additionalAnimations(for operation: ViewControllerOperation) -> TypeAlias.ArgumentlessClosure 21 | } 22 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/PopupPresentationSupport.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PopupPresentationSupport.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class UIKit.NSLayoutConstraint.NSLayoutConstraint 9 | import class UIKit.UIView.UIView 10 | 11 | internal protocol PopupPresentationSupport { 12 | 13 | var presentationAnimationAnimatingConstraint: NSLayoutConstraint? { get } 14 | var viewToLayout: UIView { get } 15 | } 16 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/SetupApplePayViewControllerDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SetupApplePayViewControllerDelegate.swift 3 | // goSellSDK 4 | // 5 | // Created by Osama Rabie on 09/01/2020. 6 | // Copyright © 2020 Tap Payments. All rights reserved. 7 | // 8 | 9 | 10 | import protocol TapAdditionsKitV2.ClassProtocol 11 | 12 | internal protocol SetupApplePayViewControllerDelegate: ClassProtocol { 13 | /** 14 | Method to get notified when the user wants to setup his apple pay 15 | - Parameter controller: The current visible setup apple view controller 16 | */ 17 | func setupApplePayViewControllerSetpButtonTouchUpInside(_ controller: SetupApplePayViewController) 18 | /** 19 | Method to get notified when the user wants to cancel setup his apple pay 20 | - Parameter controller: The current visible setup apple view controller 21 | */ 22 | func setupApplePayViewControllerDidCancel(_ controller: SetupApplePayViewController) 23 | } 24 | 25 | 26 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/Singleton.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Singleton.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import protocol TapAdditionsKitV2.ClassProtocol 9 | 10 | internal protocol Singleton: ClassProtocol { 11 | 12 | static var shared: Self { get } 13 | } 14 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/SortableByOrder.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SortableByOrder.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal protocol SortableByOrder { 9 | 10 | var orderBy: Int { get } 11 | } 12 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/StaticlyDestroyable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // StaticlyDestroyable.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import protocol TapAdditionsKitV2.ClassProtocol 9 | import struct TapAdditionsKitV2.TypeAlias 10 | 11 | internal protocol StaticlyDestroyable: ClassProtocol { 12 | 13 | static var hasAliveInstance: Bool { get } 14 | } 15 | 16 | internal protocol ImmediatelyDestroyable: StaticlyDestroyable { 17 | 18 | static func destroyInstance() 19 | } 20 | 21 | internal protocol DelayedDestroyable: StaticlyDestroyable { 22 | 23 | static func destroyInstance(_ completion: TypeAlias.ArgumentlessClosure?) 24 | } 25 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/TapButtonDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TapButtonDelegate.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import protocol TapAdditionsKitV2.ClassProtocol 9 | 10 | internal protocol TapButtonDelegate: ClassProtocol { 11 | 12 | // MARK: Properties 13 | 14 | var canBeHighlighted: Bool { get } 15 | 16 | // MARK: Methods 17 | 18 | func buttonTouchUpInside() 19 | 20 | func securityButtonTouchUpInside() 21 | 22 | func disabledButtonTouchUpInside() 23 | } 24 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/TextInputDataValidation.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TextInputDataValidation.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal protocol TextInputDataValidation: DataValidation { 9 | 10 | var textInputFieldText: String { get } 11 | func updateSpecificInputFieldAttributes() 12 | } 13 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/TextLabelInputDataValidation.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TextLabelInputDataValidation.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import class UIKit.UILabel.UILabel 9 | 10 | internal protocol TextLabelInputDataValidation: TextInputDataValidation { 11 | 12 | var labelField: UILabel { get } 13 | } 14 | 15 | internal extension TextLabelInputDataValidation { 16 | 17 | func updateInputFieldTextAndAttributes() { 18 | 19 | let cardInputStyle = Theme.current.paymentOptionsCellStyle.card.textInput 20 | let textSettings = cardInputStyle[self.isDataValid ? .valid : .invalid] 21 | let textAttributes = textSettings.asStringAttributes 22 | 23 | self.labelField.attributedText = NSAttributedString(string: self.textInputFieldText, attributes: textAttributes) 24 | 25 | self.updateSpecificInputFieldAttributes() 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/ThemeObserver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ThemeObserver.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import protocol TapAdditionsKitV2.ClassProtocol 9 | 10 | internal protocol ThemeObserver: ClassProtocol { 11 | 12 | func themeChanged() 13 | } 14 | 15 | internal extension ThemeObserver { 16 | 17 | func startMonitoringThemeChanges() -> NSObjectProtocol { 18 | 19 | return NotificationCenter.default.addObserver(forName: .tap_sdkThemeChanged, object: nil, queue: .main) { [weak self] _ in 20 | 21 | self?.themeChanged() 22 | } 23 | } 24 | 25 | func stopMonitoringThemeChanges(_ observation: Any?) { 26 | 27 | if let nonnullObservation = observation { 28 | 29 | NotificationCenter.default.removeObserver(nonnullObservation, name: .tap_sdkThemeChanged, object: nil) 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/Transformable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Transformable.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal protocol Transformable { 9 | 10 | init?(untransformedValue: Any?) 11 | } 12 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/ViewControllerLayoutListener.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewControllerLayoutListener.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import protocol TapAdditionsKitV2.ClassProtocol 9 | import class UIKit.UIViewController.UIViewController 10 | 11 | internal protocol ViewControllerLayoutListener: ClassProtocol { 12 | 13 | func viewControllerViewDidLayoutSubviews(_ viewController: UIViewController) 14 | } 15 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Protocols/WebPaymentContentViewControllerDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // WebPaymentContentViewControllerDelegate.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | import struct CoreGraphics.CGGeometry.CGPoint 9 | import protocol TapAdditionsKitV2.ClassProtocol 10 | 11 | internal protocol WebPaymentContentViewControllerDelegate: ClassProtocol { 12 | 13 | func webPaymentContentViewControllerRequestedDismissal(_ controller: WebPaymentContentViewController) 14 | } 15 | -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Colors.xcassets/AsyncLabelColors.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "0.325", 13 | "alpha" : "1.000", 14 | "blue" : "0.325", 15 | "green" : "0.325" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "1.000", 31 | "alpha" : "1.000", 32 | "blue" : "1.000", 33 | "green" : "1.000" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Colors.xcassets/CardInputTextFieldColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "0.000", 13 | "alpha" : "1.000", 14 | "blue" : "0.000", 15 | "green" : "0.000" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "1.000", 31 | "alpha" : "1.000", 32 | "blue" : "1.000", 33 | "green" : "1.000" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Colors.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Colors.xcassets/CurrencyHolderViewColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "0.969", 13 | "alpha" : "1.000", 14 | "blue" : "0.969", 15 | "green" : "0.969" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "0.082", 31 | "alpha" : "1.000", 32 | "blue" : "0.082", 33 | "green" : "0.082" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Colors.xcassets/DefaultCardSeparatorColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "0.882", 13 | "alpha" : "1.000", 14 | "blue" : "0.882", 15 | "green" : "0.882" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "0.063", 31 | "alpha" : "0.500", 32 | "blue" : "0.063", 33 | "green" : "0.063" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Colors.xcassets/DefaultCellColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "1.000", 13 | "alpha" : "1.000", 14 | "blue" : "1.000", 15 | "green" : "1.000" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "0.318", 31 | "alpha" : "1.000", 32 | "blue" : "0.318", 33 | "green" : "0.318" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Colors.xcassets/DefaultSeparatorCellColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "0.882", 13 | "alpha" : "1.000", 14 | "blue" : "0.882", 15 | "green" : "0.882" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "0.475", 31 | "alpha" : "1.000", 32 | "blue" : "0.471", 33 | "green" : "0.471" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Colors.xcassets/OTPHolderColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "1.000", 13 | "alpha" : "0.360", 14 | "blue" : "1.000", 15 | "green" : "1.000" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "0.082", 31 | "alpha" : "0.000", 32 | "blue" : "0.082", 33 | "green" : "0.082" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Colors.xcassets/SaveCardLabelColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "0.361", 13 | "alpha" : "1.000", 14 | "blue" : "0.361", 15 | "green" : "0.361" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "0.898", 31 | "alpha" : "1.000", 32 | "blue" : "0.898", 33 | "green" : "0.898" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Colors.xcassets/SaveCardSwitchTintColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "0.165", 13 | "alpha" : "1.000", 14 | "blue" : "0.000", 15 | "green" : "0.808" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "0.882", 31 | "alpha" : "1.000", 32 | "blue" : "0.882", 33 | "green" : "0.882" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Colors.xcassets/SavedCardCellBackgroundColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "1.000", 13 | "alpha" : "1.000", 14 | "blue" : "1.000", 15 | "green" : "1.000" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "display-p3", 29 | "components" : { 30 | "red" : "1.000", 31 | "alpha" : "0.701", 32 | "blue" : "1.000", 33 | "green" : "1.000" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ApplePayMark.imageset/Apple_Pay_Mark Copy 3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ApplePayMark.imageset/Apple_Pay_Mark Copy 3@2x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ApplePayMark.imageset/Apple_Pay_Mark Copy 3@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ApplePayMark.imageset/Apple_Pay_Mark Copy 3@3x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ApplePayMark.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "Apple_Pay_Mark Copy 3@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "Apple_Pay_Mark Copy 3@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ApplePaySetUp.imageset/ApplePay-SetUp_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ApplePaySetUp.imageset/ApplePay-SetUp_2x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ApplePaySetUp.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ApplePay-SetUp_2x.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/SetupApplePaySplash.imageset/4.Setup Apple PayPay_Splash_2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/SetupApplePaySplash.imageset/4.Setup Apple PayPay_Splash_2@2x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/SetupApplePaySplash.imageset/4.Setup Apple PayPay_Splash_2@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/SetupApplePaySplash.imageset/4.Setup Apple PayPay_Splash_2@3x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/SetupApplePaySplash.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "4.Setup Apple PayPay_Splash_2@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "4.Setup Apple PayPay_Splash_2@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/btn_scan_frame.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "btn_scan_frame.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "btn_scan_frame@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "btn_scan_frame@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/btn_scan_frame.imageset/btn_scan_frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/btn_scan_frame.imageset/btn_scan_frame.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/btn_scan_frame.imageset/btn_scan_frame@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/btn_scan_frame.imageset/btn_scan_frame@2x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/btn_scan_frame.imageset/btn_scan_frame@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/btn_scan_frame.imageset/btn_scan_frame@3x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/btn_scan_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "btn_scan_icon.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "btn_scan_icon@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "btn_scan_icon@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/btn_scan_icon.imageset/btn_scan_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/btn_scan_icon.imageset/btn_scan_icon.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/btn_scan_icon.imageset/btn_scan_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/btn_scan_icon.imageset/btn_scan_icon@2x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/btn_scan_icon.imageset/btn_scan_icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/btn_scan_icon.imageset/btn_scan_icon@3x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/btn_security.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "btn_security.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "btn_security@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "btn_security@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/btn_security.imageset/btn_security.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/btn_security.imageset/btn_security.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/btn_security.imageset/btn_security@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/btn_security.imageset/btn_security@2x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/btn_security.imageset/btn_security@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/btn_security.imageset/btn_security@3x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/delete_card_icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "delete_card_icon.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/delete_card_icon.imageset/delete_card_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/delete_card_icon.imageset/delete_card_icon.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_arrow_left.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_arrow_left.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_arrow_left@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ic_arrow_left@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_arrow_left.imageset/ic_arrow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_arrow_left.imageset/ic_arrow_left.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_arrow_left.imageset/ic_arrow_left@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_arrow_left.imageset/ic_arrow_left@2x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_arrow_left.imageset/ic_arrow_left@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_arrow_left.imageset/ic_arrow_left@3x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_arrow_right.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_arrow_right.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_arrow_right@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ic_arrow_right@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_arrow_right.imageset/ic_arrow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_arrow_right.imageset/ic_arrow_right.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_arrow_right.imageset/ic_arrow_right@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_arrow_right.imageset/ic_arrow_right@2x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_arrow_right.imageset/ic_arrow_right@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_arrow_right.imageset/ic_arrow_right@3x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_bill.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_bill.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_bill@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ic_bill@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_bill.imageset/ic_bill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_bill.imageset/ic_bill.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_bill.imageset/ic_bill@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_bill.imageset/ic_bill@2x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_bill.imageset/ic_bill@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_bill.imageset/ic_bill@3x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_checkmark.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_checkmark.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_checkmark@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ic_checkmark@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_checkmark.imageset/ic_checkmark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_checkmark.imageset/ic_checkmark.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_checkmark.imageset/ic_checkmark@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_checkmark.imageset/ic_checkmark@2x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_checkmark.imageset/ic_checkmark@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_checkmark.imageset/ic_checkmark@3x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_checkmark_green.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_checkmark_green.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_checkmark_green@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ic_checkmark_green@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_checkmark_green.imageset/ic_checkmark_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_checkmark_green.imageset/ic_checkmark_green.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_checkmark_green.imageset/ic_checkmark_green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_checkmark_green.imageset/ic_checkmark_green@2x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_checkmark_green.imageset/ic_checkmark_green@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_checkmark_green.imageset/ic_checkmark_green@3x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_checkmark_green_small.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_checkmark_green_small.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_checkmark_green_small@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ic_checkmark_green_small@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_checkmark_green_small.imageset/ic_checkmark_green_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_checkmark_green_small.imageset/ic_checkmark_green_small.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_checkmark_green_small.imageset/ic_checkmark_green_small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_checkmark_green_small.imageset/ic_checkmark_green_small@2x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_checkmark_green_small.imageset/ic_checkmark_green_small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_checkmark_green_small.imageset/ic_checkmark_green_small@3x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_close.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_close.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_close@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ic_close@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_close.imageset/ic_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_close.imageset/ic_close.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_close.imageset/ic_close@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_close.imageset/ic_close@2x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_close.imageset/ic_close@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_close.imageset/ic_close@3x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_close_otp.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_close_otp.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_close_otp@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ic_close_otp@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_close_otp.imageset/ic_close_otp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_close_otp.imageset/ic_close_otp.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_close_otp.imageset/ic_close_otp@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_close_otp.imageset/ic_close_otp@2x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_close_otp.imageset/ic_close_otp@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_close_otp.imageset/ic_close_otp@3x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_merchant_logo_placeholder.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_merchant_logo_placeholder.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_merchant_logo_placeholder@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ic_merchant_logo_placeholder@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_merchant_logo_placeholder.imageset/ic_merchant_logo_placeholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_merchant_logo_placeholder.imageset/ic_merchant_logo_placeholder.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_merchant_logo_placeholder.imageset/ic_merchant_logo_placeholder@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_merchant_logo_placeholder.imageset/ic_merchant_logo_placeholder@2x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_merchant_logo_placeholder.imageset/ic_merchant_logo_placeholder@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_merchant_logo_placeholder.imageset/ic_merchant_logo_placeholder@3x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_x_red.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_x_red.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_x_red@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ic_x_red@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_x_red.imageset/ic_x_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_x_red.imageset/ic_x_red.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_x_red.imageset/ic_x_red@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_x_red.imageset/ic_x_red@2x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_x_red.imageset/ic_x_red@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/Images.xcassets/ic_x_red.imageset/ic_x_red@3x.png -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Resources/sar-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Tap-Payments/goSellSDK-iOS/d442e067c28a50f3abe16fa14abdc9730b81395b/goSellSDK/Core/UI/Internal/Resources/sar-Regular.ttf -------------------------------------------------------------------------------- /goSellSDK/Core/UI/Internal/Theme/AppearanceStyle.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppearanceStyle.swift 3 | // goSellSDK 4 | // 5 | // Copyright © 2019 Tap Payments. All rights reserved. 6 | // 7 | 8 | internal struct AppearanceStyle