From 84adccd18745ee3b031b43ed67f0898097fefacd Mon Sep 17 00:00:00 2001 From: Kevin G Christiano Date: Wed, 17 Feb 2021 10:09:06 -0500 Subject: [PATCH] updates --- .../MultiItemDropdownEntryField.swift | 12 ++--- .../MultiItemDropdownEntryFieldModel.swift | 46 +++++++++++-------- .../FormFields/TextFields/EntryField.swift | 43 ----------------- 3 files changed, 34 insertions(+), 67 deletions(-) diff --git a/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/MultiItemDropdownEntryField.swift b/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/MultiItemDropdownEntryField.swift index 2c509bb3..8bed3996 100644 --- a/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/MultiItemDropdownEntryField.swift +++ b/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/MultiItemDropdownEntryField.swift @@ -71,6 +71,10 @@ open class MultiItemDropdownEntryField: BaseItemPickerEntryField { } } + func pickerHasComponent(_ index: Int) -> Bool { + !pickerComponents.isEmpty && !pickerComponents[index].isEmpty + } + //-------------------------------------------------- // MARK: - TextField Observation //-------------------------------------------------- @@ -122,18 +126,14 @@ open class MultiItemDropdownEntryField: BaseItemPickerEntryField { @objc public func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { - guard !pickerComponents.isEmpty, - !pickerComponents[component].isEmpty - else { return nil } + guard pickerHasComponent(component) else { return nil } return pickerComponents[component][row] } @objc public func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { - guard !pickerComponents.isEmpty, - !pickerComponents[component].isEmpty - else { return } + guard pickerHasComponent(component) else { return } let oldText = text ?? "" dropdownModel?.selectedIndexes[component] = row diff --git a/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/MultiItemDropdownEntryFieldModel.swift b/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/MultiItemDropdownEntryFieldModel.swift index 1dea0b0d..bc7899d7 100644 --- a/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/MultiItemDropdownEntryFieldModel.swift +++ b/MVMCoreUI/Atomic/Atoms/FormFields/TextFields/Dropdown Fields/Item Dropdown/MultiItemDropdownEntryFieldModel.swift @@ -18,7 +18,7 @@ import Foundation public var components: [[String]] = [[]] public var selectedIndexes: [Int: Int] = [:] - public var delimiters: [String]? + public var delimiters: [Int: String] = [:] //-------------------------------------------------- // MARK: - Validation @@ -31,26 +31,19 @@ import Foundation return selectedRowText } + //-------------------------------------------------- + // MARK: - Methods + //-------------------------------------------------- + + /// - parameter index: The index of the delimiter. + /// - returns: The delimiter for a given idenx. Defaults to whitespace for valid index if no delimiters is provided. If invalid index, emoty string. public func delimiter(for index: Int) -> String { - - guard let delimiters = delimiters else { return " " } + guard index != components.count - 1 else { return "" } - return delimiters[index] + return delimiters[index] ?? " " } - /* - public func delimiter(for index: Int) -> String { - - guard index != components.count - 1 else { return "" } - guard let delimiters = delimiters, - index < delimiters.count - else { return " " } - - return delimiters[index] - } - */ - /// A string of the picker row concatenated by whitespace or delimiters if provided. public var selectedRowText: String { @@ -76,6 +69,18 @@ import Foundation return indexArray } + public var delimiterArray: [String] { + + var array: [String] = [] + + for i in 0..