Classes

The following classes are available globally.

  • Attachment Context facilitates hierarchical components, i.e. AttachmentGroup and Attachment work together, for example setting and displaying error message and showing and dismissing file picker.

    See more

    Declaration

    Swift

    open class AttachmentContext
  • Basic implementation of AttachmentDelegate protocol. This is a local folder based implementation. The implementation allows Apps to store attachment locally along with the Apps, The implementation also allows Apps to further customize uploading behaviors by overriding functions.

    See more

    Declaration

    Swift

    open class BasicAttachmentDelegate : AttachmentDelegate
  • The date model of the calendar.

    See more

    Declaration

    Swift

    public class CalendarModel
  • TableModel is the data structure being used in DataTable View.

    Code Usage:

    let header = TableRowItem(leadingAccessories: [], trailingAccessory: nil, data: titles)
    let model = TableModel(headerData: header, rowData: res, isFirstRowSticky: true, isFirstColumnSticky: true, showListView: true)
    model.columnAttributes = ...
    model.didSelectRowAt = { rowIndex in
       print("Tapped row \(rowIndex)")
    }
    
    /// set a closure to check whether a dataItem located at (rowIndex, columnIndex) is valid; If it is valid, returns (true, nil); if it is not valid, returns false and an error message which is shown to users.
    model.validateDataItem = { rowIndex, columnIndex, dataItem in
    ...
    }
    
    /// set a closure to provide a `DataListItem` type dataItem located at (rowIndex, columnIndex) for an array of Strings and a title for inline editing mode
    model.listItemDataAndTitle = { rowIndex, columnIndex in
    ...
    }
    
    /// set a closure to observe a value change for inline editing mode
    model.valueDidChange = { change in
        print("valueDidChange: \(change.description)")
    }
    
    See more

    Declaration

    Swift

    public class TableModel : ObservableObject
  • Undocumented

    See more

    Declaration

    Swift

    public final class StyleCache : ObservableObject
  • strings configuration in OnboardingScanConfirmView

    See more

    Declaration

    Swift

    public class OnboardingScanConfirmViewContext
  • strings configuration in OnboardingScanView

    See more

    Declaration

    Swift

    public class OnboardingScanViewContext
  • A singleton object to customize the Locale to be used.

    See more

    Declaration

    Swift

    public class FioriLocale : NSObject
  • This is an implementation of FormattedStringEditing on top of the regular iOS NumberFormatter.

    The main enhancement is to add the support to handle cursor positions.

    Here are two examples when using with the FUITextFieldFormCell:

    • As a currency number formatter

      let cell = tableView.dequeueReusableCell(withIdentifier: FUITextFieldFormCell.reuseIdentifier) as! FUITextFieldFormCell
      cell.keyName = "Price"
      cell.keyboardType = .decimalPad
      let formatter = CustomNumberFormatter()
      formatter.numberStyle = .currency
      cell.formatter = formatter
      ...
      

      The text field will display “$12.34” when user types “12.34”.

    • With custom suffix

      let cell = tableView.dequeueReusableCell(withIdentifier: FUITextFieldFormCell.reuseIdentifier) as! FUITextFieldFormCell
      cell.keyName = "Weight"
      cell.keyboardType = .decimalPad
      let formatter = CustomNumberFormatter()
      formatter.numberStyle = .decimal
      formatter.maximumFractionDigits = 3
      formatter.positiveSuffix = "lbs"
      cell.formatter = formatter
      

      The text field will display “1.234lbs” when user types “1.234”.

    Declaration

    Swift

    open class CustomNumberFormatter : NumberFormatter, FormattedStringEditing, @unchecked Sendable
  • A GenericTextFormatter implementation to format custom patterns.

    This formatter accepts different character types based on pattern markers. Each marker defines what type of character is allowed at that position. Unmatched characters will be ignored during input.

    The pattern markers are: A: Requires a letter (a-z, A-Z) N: Requires a number (0-9) X: Accepts either a letter or number S: Requires a special character *: Accepts any character YY/YYYY: Represents 2 or 4 digit year MM: Represents 2 digit month DD: Represents 2 digit day Use back space to specify a location for the special characters

    See more

    Declaration

    Swift

    open class GenericTextFormatter : FormattedStringEditing
  • A FormattedStringEditing implementation to format phone number.

    This formatter accepts only digit characters 0 through 9. All other characters user typed are ignored.

    The default format is “(###) ###-####”. Which correspond to US phone number system. Developer could change the format to fit phone number for other countries.

    See more

    Declaration

    Swift

    open class PhoneNumberFormatter : FormattedStringEditing
  • Undocumented

    See more

    Declaration

    Swift

    @MainActor
    public final class BarcodeScannerManager : ObservableObject
    extension BarcodeScannerManager: BarcodeScannerDelegate
  • A barcode scanner implementation for IPCMobile (RapidScan) hardware scanners using the RapidScanCompanion SDK.

    This class manages the connection via Bluetooth LE advertising (for pairing) and direct communication with connected IPCMobile HaloRing devices. It conforms to the BarcodeScanner protocol.

    See more
  • Fallback implementation for IPCMobileScanner when the RapidScanCompanion SDK is not available.

    This version provides a non-functional scanner that always reports an SDK availability error.

    See more

    Declaration

    Swift

    @MainActor
    public final class IPCMobileScanner : NSObject, BarcodeScanner
  • A barcode scanner implementation for ProGlove hardware scanners using the ConnectSDK.

    This class manages the connection, state, and data interaction with ProGlove devices. It conforms to the BarcodeScanner protocol providing a unified interface for scanning operations.

    It handles Bluetooth LE communication via PGCentralManager and receives barcode data through PGPeripheralDelegate.

    See more
  • Fallback implementation for ProGloveScanner when the ConnectSDK is not available.

    This version provides a non-functional scanner that always reports an SDK availability error.

    See more

    Declaration

    Swift

    @MainActor
    public final class ProGloveScanner : NSObject, BarcodeScanner
  • A barcode scanner implementation using Apple’s VisionKit framework.

    This class utilizes the DataScannerViewController to scan barcodes and text using the device’s camera. It conforms to the BarcodeScanner protocol.

    Usage

    The BarcodeScannerManager typically manages instances of this scanner.

    1. startMonitoring(): Checks camera permissions and prepares the DataScannerViewController. Sets status to .ready if successful.
    2. getScannerView(): Returns the DataScannerViewController instance, which should be presented by the application (e.g., via a UIViewControllerRepresentable).
    3. triggerScan(): Called (usually after the view is presented) to start the DataScannerViewController‘s actual scanning process. Status becomes .scanning.
    4. Barcode data is reported via the BarcodeScannerDelegate.
    5. stopMonitoring(): Stops the scan and releases the camera resources.

    Ensure the NSCameraUsageDescription key is included in your app’s Info.plist.

    See more

    Declaration

    Swift

    @MainActor
    public final class VisionKitScanner : NSObject, BarcodeScanner
    extension VisionKitScanner: DataScannerViewControllerDelegate
  • Undocumented

    See more

    Declaration

    Swift

    public class BannerMessageListModel : Identifiable, Equatable, ObservableObject