Merge branch 'feature/checkbox_keys' into 'develop'
Feature/checkbox keys See merge request BPHV_MIPS/mvm_core_ui!296
This commit is contained in:
commit
d9905c8cd5
@ -19,9 +19,8 @@ import MVMCore
|
|||||||
public var sizeObject: MFSizeObject? = MFSizeObject(standardSize: Checkbox.defaultHeightWidth, standardiPadPortraitSize: Checkbox.defaultHeightWidth + 6.0)
|
public var sizeObject: MFSizeObject? = MFSizeObject(standardSize: Checkbox.defaultHeightWidth, standardiPadPortraitSize: Checkbox.defaultHeightWidth + 6.0)
|
||||||
|
|
||||||
// Form Validation
|
// Form Validation
|
||||||
var isRequired = false
|
|
||||||
var fieldKey: String?
|
var fieldKey: String?
|
||||||
var fieldValue: String?
|
var fieldValue: JSONValue?
|
||||||
var groupName: String?
|
var groupName: String?
|
||||||
var delegateObject: MVMCoreUIDelegateObject?
|
var delegateObject: MVMCoreUIDelegateObject?
|
||||||
|
|
||||||
@ -398,64 +397,6 @@ import MVMCore
|
|||||||
//layoutIfNeeded()
|
//layoutIfNeeded()
|
||||||
}
|
}
|
||||||
|
|
||||||
public override func setWithJSON(_ json: [AnyHashable: Any]?, delegateObject: MVMCoreUIDelegateObject?, additionalData: [AnyHashable: Any]?) {
|
|
||||||
super.setWithJSON(json, delegateObject: delegateObject, additionalData: additionalData)
|
|
||||||
self.delegateObject = delegateObject
|
|
||||||
FormValidator.setupValidation(molecule: self, delegate: delegateObject?.formValidationProtocol)
|
|
||||||
|
|
||||||
guard let dictionary = json else { return }
|
|
||||||
|
|
||||||
groupName = dictionary.optionalStringForKey("groupName")
|
|
||||||
fieldValue = dictionary.optionalStringForKey("value")
|
|
||||||
if let fieldKey = dictionary[KeyFieldKey] as? String {
|
|
||||||
self.fieldKey = fieldKey
|
|
||||||
}
|
|
||||||
|
|
||||||
if let isRequired = dictionary[KeyRequired] as? Bool {
|
|
||||||
self.isRequired = isRequired
|
|
||||||
}
|
|
||||||
|
|
||||||
if let borderColorHex = dictionary["borderColor"] as? String {
|
|
||||||
layer.borderColor = UIColor.mfGet(forHex: borderColorHex).cgColor
|
|
||||||
}
|
|
||||||
|
|
||||||
if let borderWidth = dictionary["borderWidth"] as? CGFloat {
|
|
||||||
layer.borderWidth = borderWidth
|
|
||||||
}
|
|
||||||
|
|
||||||
if let checkColorHex = dictionary["checkColor"] as? String {
|
|
||||||
checkColor = UIColor.mfGet(forHex: checkColorHex)
|
|
||||||
}
|
|
||||||
|
|
||||||
if let isChecked = dictionary["isChecked"] as? Bool, isChecked {
|
|
||||||
checkAndBypassAnimations(selected: isChecked)
|
|
||||||
}
|
|
||||||
|
|
||||||
if let unCheckedBackgroundColorHex = dictionary["unCheckedBackgroundColor"] as? String {
|
|
||||||
unCheckedBackgroundColor = UIColor.mfGet(forHex: unCheckedBackgroundColorHex)
|
|
||||||
}
|
|
||||||
|
|
||||||
if let checkedBackgroundColorHex = dictionary["checkedBackgroundColor"] as? String {
|
|
||||||
checkedBackgroundColor = UIColor.mfGet(forHex: checkedBackgroundColorHex)
|
|
||||||
}
|
|
||||||
|
|
||||||
if let isAnimated = dictionary["isAnimated"] as? Bool {
|
|
||||||
self.isAnimated = isAnimated
|
|
||||||
}
|
|
||||||
|
|
||||||
if let isRound = dictionary["isRound"] as? Bool {
|
|
||||||
self.isRound = isRound
|
|
||||||
}
|
|
||||||
|
|
||||||
if let enabled = dictionary["isEnabled"] as? Bool {
|
|
||||||
isEnabled = enabled
|
|
||||||
}
|
|
||||||
|
|
||||||
if let actionMap = dictionary.optionalDictionaryForKey("action") {
|
|
||||||
actionBlock = { MVMCoreActionHandler.shared()?.handleAction(with: actionMap, additionalData: additionalData, delegateObject: delegateObject) }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public override func set(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable: Any]?) {
|
public override func set(with model: MoleculeModelProtocol, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [AnyHashable: Any]?) {
|
||||||
super.set(with: model, delegateObject, additionalData)
|
super.set(with: model, delegateObject, additionalData)
|
||||||
|
|
||||||
@ -465,8 +406,7 @@ import MVMCore
|
|||||||
FormValidator.setupValidation(molecule: self, delegate: delegateObject?.formValidationProtocol)
|
FormValidator.setupValidation(molecule: self, delegate: delegateObject?.formValidationProtocol)
|
||||||
|
|
||||||
groupName = model.groupName
|
groupName = model.groupName
|
||||||
fieldValue = model.value
|
fieldValue = model.fieldValue
|
||||||
isRequired = model.required
|
|
||||||
|
|
||||||
if let fieldKey = model.fieldKey {
|
if let fieldKey = model.fieldKey {
|
||||||
self.fieldKey = fieldKey
|
self.fieldKey = fieldKey
|
||||||
@ -509,7 +449,7 @@ extension Checkbox: FormValidationFormFieldProtocol {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public func isValidField() -> Bool {
|
public func isValidField() -> Bool {
|
||||||
return isRequired ? isSelected : true
|
return (fieldKey != nil) ? isSelected : true
|
||||||
}
|
}
|
||||||
|
|
||||||
public func formFieldName() -> String? {
|
public func formFieldName() -> String? {
|
||||||
@ -517,6 +457,6 @@ extension Checkbox: FormValidationFormFieldProtocol {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public func formFieldValue() -> Any? {
|
public func formFieldValue() -> Any? {
|
||||||
return isSelected ? fieldValue : nil
|
return fieldValue ?? (isSelected ? fieldValue : nil)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -17,22 +17,22 @@ import Foundation
|
|||||||
public var backgroundColor: Color?
|
public var backgroundColor: Color?
|
||||||
|
|
||||||
public var groupName: String?
|
public var groupName: String?
|
||||||
public var value: String?
|
|
||||||
public var fieldKey: String?
|
public var fieldKey: String?
|
||||||
public var required: Bool = false
|
public var fieldValue: JSONValue?
|
||||||
public var borderColor: Color = Color(uiColor: .black)
|
|
||||||
public var borderWidth: CGFloat = 1
|
|
||||||
public var isChecked: Bool = false
|
public var isChecked: Bool = false
|
||||||
|
public var isEnabled: Bool = true
|
||||||
|
public var isAnimated: Bool = true
|
||||||
|
public var isRound: Bool = false
|
||||||
|
public var borderWidth: CGFloat = 1
|
||||||
|
public var borderColor: Color = Color(uiColor: .black)
|
||||||
public var checkColor: Color = Color(uiColor: .black)
|
public var checkColor: Color = Color(uiColor: .black)
|
||||||
public var unCheckedBackgroundColor: Color = Color(uiColor: .clear)
|
public var unCheckedBackgroundColor: Color = Color(uiColor: .clear)
|
||||||
public var checkedBackgroundColor: Color = Color(uiColor: .clear)
|
public var checkedBackgroundColor: Color = Color(uiColor: .clear)
|
||||||
public var isAnimated: Bool = true
|
|
||||||
public var isRound: Bool = false
|
|
||||||
public var isEnabled: Bool = true
|
|
||||||
public var action: ActionModelProtocol?
|
|
||||||
public var disabledBackgroundColor: Color = Color(uiColor: .clear)
|
public var disabledBackgroundColor: Color = Color(uiColor: .clear)
|
||||||
public var disabledBorderColor: Color = Color(uiColor: .mvmCoolGray3)
|
public var disabledBorderColor: Color = Color(uiColor: .mvmCoolGray3)
|
||||||
public var disabledCheckColor: Color = Color(uiColor: .mvmCoolGray3)
|
public var disabledCheckColor: Color = Color(uiColor: .mvmCoolGray3)
|
||||||
|
public var action: ActionModelProtocol?
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Keys
|
// MARK: - Keys
|
||||||
@ -41,21 +41,20 @@ import Foundation
|
|||||||
private enum CodingKeys: String, CodingKey {
|
private enum CodingKeys: String, CodingKey {
|
||||||
case moleculeName
|
case moleculeName
|
||||||
case groupName
|
case groupName
|
||||||
case value
|
|
||||||
case fieldKey
|
case fieldKey
|
||||||
case required
|
case fieldValue
|
||||||
case borderColor
|
case isChecked = "checked"
|
||||||
|
case isEnabled = "enabled"
|
||||||
|
case isAnimated = "animated"
|
||||||
|
case isRound = "round"
|
||||||
case borderWidth
|
case borderWidth
|
||||||
case isChecked
|
case borderColor
|
||||||
case checkColor
|
case checkColor
|
||||||
case unCheckedBackgroundColor
|
case unCheckedBackgroundColor
|
||||||
case checkedBackgroundColor
|
case checkedBackgroundColor
|
||||||
case disabledBackgroundColor
|
case disabledBackgroundColor
|
||||||
case disabledCheckColor
|
case disabledCheckColor
|
||||||
case disabledBorderColor
|
case disabledBorderColor
|
||||||
case isAnimated
|
|
||||||
case isRound
|
|
||||||
case isEnabled
|
|
||||||
case action
|
case action
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,9 +67,8 @@ import Foundation
|
|||||||
required public init(from decoder: Decoder) throws {
|
required public init(from decoder: Decoder) throws {
|
||||||
let typeContainer = try decoder.container(keyedBy: CodingKeys.self)
|
let typeContainer = try decoder.container(keyedBy: CodingKeys.self)
|
||||||
groupName = try typeContainer.decodeIfPresent(String.self, forKey: .groupName)
|
groupName = try typeContainer.decodeIfPresent(String.self, forKey: .groupName)
|
||||||
value = try typeContainer.decodeIfPresent(String.self, forKey: .value)
|
fieldValue = try typeContainer.decodeIfPresent(JSONValue.self, forKey: .fieldValue)
|
||||||
fieldKey = try typeContainer.decodeIfPresent(String.self, forKey: .fieldKey)
|
fieldKey = try typeContainer.decodeIfPresent(String.self, forKey: .fieldKey)
|
||||||
required = try typeContainer.decodeIfPresent(Bool.self, forKey: .required) ?? false
|
|
||||||
borderWidth = try typeContainer.decodeIfPresent(CGFloat.self, forKey: .borderWidth) ?? 1
|
borderWidth = try typeContainer.decodeIfPresent(CGFloat.self, forKey: .borderWidth) ?? 1
|
||||||
borderColor = try typeContainer.decodeIfPresent(Color.self, forKey: .borderColor) ?? Color(uiColor: .black)
|
borderColor = try typeContainer.decodeIfPresent(Color.self, forKey: .borderColor) ?? Color(uiColor: .black)
|
||||||
checkColor = try typeContainer.decodeIfPresent(Color.self, forKey: .checkColor) ?? Color(uiColor: .black)
|
checkColor = try typeContainer.decodeIfPresent(Color.self, forKey: .checkColor) ?? Color(uiColor: .black)
|
||||||
@ -90,9 +88,8 @@ import Foundation
|
|||||||
var container = encoder.container(keyedBy: CodingKeys.self)
|
var container = encoder.container(keyedBy: CodingKeys.self)
|
||||||
try container.encode(moleculeName, forKey: .moleculeName)
|
try container.encode(moleculeName, forKey: .moleculeName)
|
||||||
try container.encodeIfPresent(groupName, forKey: .groupName)
|
try container.encodeIfPresent(groupName, forKey: .groupName)
|
||||||
try container.encodeIfPresent(value, forKey: .value)
|
try container.encodeIfPresent(fieldValue, forKey: .fieldValue)
|
||||||
try container.encodeIfPresent(fieldKey, forKey: .fieldKey)
|
try container.encodeIfPresent(fieldKey, forKey: .fieldKey)
|
||||||
try container.encodeIfPresent(required, forKey: .required)
|
|
||||||
try container.encodeIfPresent(borderColor, forKey: .borderColor)
|
try container.encodeIfPresent(borderColor, forKey: .borderColor)
|
||||||
try container.encode(borderWidth, forKey: .borderWidth)
|
try container.encode(borderWidth, forKey: .borderWidth)
|
||||||
try container.encode(isChecked, forKey: .isChecked)
|
try container.encode(isChecked, forKey: .isChecked)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user