diff --git a/MVMCoreUI/Containers/Container.swift.orig b/MVMCoreUI/Containers/Container.swift.orig deleted file mode 100644 index f5ef4a69..00000000 --- a/MVMCoreUI/Containers/Container.swift.orig +++ /dev/null @@ -1,265 +0,0 @@ -// -// Container.swift -// MVMCoreUI -// -// Created by Scott Pfeil on 12/11/19. -// Copyright © 2019 Verizon Wireless. All rights reserved. -// - -import UIKit - -public protocol ContainerModelProtocol: Model { - var horizontalAlignment: UIStackView.Alignment? { get set } - var verticalAlignment: UIStackView.Alignment? { get set } - var useHorizontalMargins: Bool? { get set } - var useVerticalMargins: Bool? { get set } -} - -public class ContainerHelper: NSObject { - var leftConstraint: NSLayoutConstraint? - var topConstraint: NSLayoutConstraint? - var bottomConstraint: NSLayoutConstraint? - var rightConstraint: NSLayoutConstraint? - - var alignCenterHorizontalConstraint: NSLayoutConstraint? - var alignCenterLeftConstraint: NSLayoutConstraint? - var alignCenterRightConstraint: NSLayoutConstraint? - - var alignCenterVerticalConstraint: NSLayoutConstraint? - var alignCenterTopConstraint: NSLayoutConstraint? - var alignCenterBottomConstraint: NSLayoutConstraint? - - var leftLowConstraint: NSLayoutConstraint? - var topLowConstraint: NSLayoutConstraint? - var bottomLowConstraint: NSLayoutConstraint? - var rightLowConstraint: NSLayoutConstraint? - - func constrainView(_ view: UIView) { - guard let margins = view.superview?.layoutMarginsGuide else { return } - leftConstraint = view.leftAnchor.constraint(equalTo: margins.leftAnchor) - leftConstraint?.isActive = true - - topConstraint = view.topAnchor.constraint(equalTo: margins.topAnchor) - topConstraint?.isActive = true - - rightConstraint = margins.rightAnchor.constraint(equalTo: view.rightAnchor) - rightConstraint?.isActive = true - - bottomConstraint = margins.bottomAnchor.constraint(equalTo: view.bottomAnchor) - bottomConstraint?.isActive = true - - alignCenterHorizontalConstraint = view.centerXAnchor.constraint(equalTo: margins.centerXAnchor) - alignCenterLeftConstraint = view.leftAnchor.constraint(greaterThanOrEqualTo: margins.leftAnchor) - alignCenterRightConstraint = margins.rightAnchor.constraint(greaterThanOrEqualTo: view.rightAnchor) - - alignCenterVerticalConstraint = view.centerYAnchor.constraint(equalTo: margins.centerYAnchor) - alignCenterTopConstraint = view.topAnchor.constraint(greaterThanOrEqualTo: margins.topAnchor) - alignCenterBottomConstraint = margins.bottomAnchor.constraint(greaterThanOrEqualTo: view.bottomAnchor) - - leftLowConstraint = view.leftAnchor.constraint(equalTo: margins.leftAnchor) - leftLowConstraint?.priority = UILayoutPriority(rawValue: 200) - leftLowConstraint?.isActive = true - - topLowConstraint = view.topAnchor.constraint(equalTo: margins.topAnchor) - topLowConstraint?.priority = UILayoutPriority(rawValue: 200) - topLowConstraint?.isActive = true - - rightLowConstraint = margins.rightAnchor.constraint(equalTo: view.rightAnchor) - rightLowConstraint?.priority = UILayoutPriority(rawValue: 200) - rightLowConstraint?.isActive = true - - bottomLowConstraint = margins.bottomAnchor.constraint(equalTo: view.bottomAnchor) - bottomLowConstraint?.priority = UILayoutPriority(rawValue: 200) - bottomLowConstraint?.isActive = true - - setAccessibility(view) - } - - func setAccessibility(_ view: UIView) { - guard let superView = view.superview else { return } - superView.isAccessibilityElement = false - if let elements = view.accessibilityElements { - superView.accessibilityElements = elements - } else { - superView.accessibilityElements = [view] - } - } - - func alignHorizontal(_ alignment: UIStackView.Alignment) { - switch alignment { - case .center: - alignCenterHorizontalConstraint?.isActive = true - alignCenterLeftConstraint?.isActive = true - alignCenterRightConstraint?.isActive = true - leftConstraint?.isActive = false - rightConstraint?.isActive = false - case .leading: - alignCenterHorizontalConstraint?.isActive = false - alignCenterLeftConstraint?.isActive = false - alignCenterRightConstraint?.isActive = true - leftConstraint?.isActive = true - rightConstraint?.isActive = false - case .trailing: - alignCenterHorizontalConstraint?.isActive = false - alignCenterLeftConstraint?.isActive = true - alignCenterRightConstraint?.isActive = false - leftConstraint?.isActive = false - rightConstraint?.isActive = true - case .fill: - alignCenterHorizontalConstraint?.isActive = false - alignCenterLeftConstraint?.isActive = false - alignCenterRightConstraint?.isActive = false - leftConstraint?.isActive = true - rightConstraint?.isActive = true - default: break - } - } - - func alignVertical(_ alignment: UIStackView.Alignment) { - switch alignment { - case .center: - alignCenterVerticalConstraint?.isActive = true - alignCenterTopConstraint?.isActive = true - alignCenterBottomConstraint?.isActive = true - topConstraint?.isActive = false - bottomConstraint?.isActive = false - case .leading: - alignCenterVerticalConstraint?.isActive = false - alignCenterTopConstraint?.isActive = false - alignCenterBottomConstraint?.isActive = true - topConstraint?.isActive = true - bottomConstraint?.isActive = false - case .trailing: - alignCenterVerticalConstraint?.isActive = false - alignCenterTopConstraint?.isActive = true - alignCenterBottomConstraint?.isActive = false - topConstraint?.isActive = false - bottomConstraint?.isActive = true - case .fill: - alignCenterVerticalConstraint?.isActive = false - alignCenterTopConstraint?.isActive = false - alignCenterBottomConstraint?.isActive = false - topConstraint?.isActive = true - bottomConstraint?.isActive = true - default: break - } - } - - func set(with model: ContainerModelProtocol) { - if let horizontalAlignment = model.horizontalAlignment { - alignHorizontal(horizontalAlignment) - } - if let verticalAlignment = model.verticalAlignment { - alignVertical(verticalAlignment) - } - } - - static func getAlignment(for string: String) -> UIStackView.Alignment? { - switch string { - case "leading": - return .leading - case "trailing": - return .trailing - case "center": - return .center - case "fill": - return .fill - default: - return nil - } - } - - static func getAlignmentString(for alignment: UIStackView.Alignment?) -> String? { - switch alignment { - case .leading: - return "leading" - case .trailing: - return "trailing" - case .center: - return "center" - case .fill: - return "fill" - default: - return nil - } - } - - func set(with JSON: [AnyHashable: Any]?, for contained: UIView) { - if let horizontalAlignmentString = JSON?.optionalStringForKey("horizontalAlignment"), let alignment = ContainerHelper.getAlignment(for: horizontalAlignmentString) ?? (contained as? MVMCoreUIViewConstrainingProtocol)?.horizontalAlignment?() { - alignHorizontal(alignment) - } else if let alignment = (contained as? MVMCoreUIViewConstrainingProtocol)?.horizontalAlignment?() { - alignHorizontal(alignment) - } - - if let verticalAlignmentString = JSON?.optionalStringForKey("verticalAlignment"), let alignment = ContainerHelper.getAlignment(for: verticalAlignmentString) ?? (contained as? MVMCoreUIViewConstrainingProtocol)?.verticalAlignment?() { - alignVertical(alignment) - } else if let alignment = (contained as? MVMCoreUIViewConstrainingProtocol)?.verticalAlignment?() { - alignVertical(alignment) - } - } -} - -open class Container: View { -<<<<<<< HEAD -======= - var containerModel: ContainerModelProtocol? ->>>>>>> e36d487d326f710d7302c6d9bcb758d209ad329c - var view: UIView? - let containerHelper = ContainerHelper() - var containerModel: ContainerModelProtocol? { - get { return model as? ContainerModelProtocol } - } - var topMarginPadding: CGFloat = 0 - var bottomMarginPadding: CGFloat = 0 - - override open func setWithModel(_ model: MoleculeProtocol?, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [String : AnyHashable]?) { - super.setWithModel(model, delegateObject, additionalData) - guard let containerModel = model as? ContainerModelProtocol else { return } - containerHelper.set(with: containerModel) - } -} - -// MARK: - MVMCoreViewProtocol -public extension Container { - override func updateView(_ size: CGFloat) { - super.updateView(size) - (view as? MVMCoreViewProtocol)?.updateView(size) - MFStyler.setMarginsFor(self, size: size, defaultHorizontal: containerModel?.useHorizontalMargins ?? true, top: containerModel?.useHorizontalMargins ?? true ? topMarginPadding : 0, bottom: containerModel?.useHorizontalMargins ?? true ? bottomMarginPadding : 0) - } - - /// Will be called only once. - override func setupView() { - super.setupView() - backgroundColor = .clear - } - - func addAndContain(_ view: UIView) { - view.translatesAutoresizingMaskIntoConstraints = false - addSubview(view) - containerHelper.constrainView(view) - self.view = view - } - - convenience init(andContain view: UIView) { - self.init() - addAndContain(view) - } -} - -// MARK: - MVMCoreUIMoleculeViewProtocol -public extension Container { - override func setWithJSON(_ json: [AnyHashable : Any]?, delegateObject: MVMCoreUIDelegateObject?, additionalData: [AnyHashable : Any]?) { - super.setWithJSON(json, delegateObject: delegateObject, additionalData: additionalData) - guard let view = view else { return } - containerHelper.set(with: json, for: view) - } - - override func reset() { - super.reset() - (view as? MVMCoreUIMoleculeViewProtocol)?.reset?() - } - - func setAsMolecule() { - (view as? MVMCoreUIMoleculeViewProtocol)?.setAsMolecule?() - } -} diff --git a/MVMCoreUI/Models/Molecules/FooterModel.swift.orig b/MVMCoreUI/Models/Molecules/FooterModel.swift.orig deleted file mode 100644 index 077c6b8c..00000000 --- a/MVMCoreUI/Models/Molecules/FooterModel.swift.orig +++ /dev/null @@ -1,37 +0,0 @@ -// -// FooterModel.swift -// MVMCoreUI -// -// Created by Suresh, Kamlesh on 11/27/19. -// Copyright © 2019 Verizon Wireless. All rights reserved. -// - -import Foundation - - -@objcMembers public class FooterModel: MoleculeContainerModel, MoleculeProtocol { - public static var identifier: String = "footer" - public var backgroundColor: Color? - - enum FooterCodingKeys: String, CodingKey { - case backgroundColor - } - - required public init(from decoder: Decoder) throws { -<<<<<<< HEAD - let typeContainer = try decoder.container(keyedBy: FooterCodingKeys.self) - backgroundColor = try typeContainer.decodeIfPresent(Color.self, forKey: .backgroundColor) - try super.init(from: decoder) -======= - let typeContainer = try decoder.container(keyedBy: CodingKeys.self) - self.backgroundColor = try typeContainer.decodeIfPresent(Color.self, forKey: .backgroundColor) - self.molecule = try typeContainer.decodeMolecule(codingKey: .molecule) ->>>>>>> 83b0a554049f764888ce9db27dbd7fa503fddf01 - } - - public override func encode(to encoder: Encoder) throws { - try super.encode(to: encoder) - var container = encoder.container(keyedBy: FooterCodingKeys.self) - try container.encodeIfPresent(backgroundColor, forKey: .backgroundColor) - } -} diff --git a/MVMCoreUI/Molecules/Items/StackItem.swift.orig b/MVMCoreUI/Molecules/Items/StackItem.swift.orig deleted file mode 100644 index 10288002..00000000 --- a/MVMCoreUI/Molecules/Items/StackItem.swift.orig +++ /dev/null @@ -1,100 +0,0 @@ -// -// StackItem.swift -// MVMCoreUI -// -// Created by Scott Pfeil on 12/13/19. -// Copyright © 2019 Verizon Wireless. All rights reserved. -// - -import UIKit - -open class StackItemModel: ContainerModelProtocol, MoleculeProtocol { - public static var identifier: String = "stackItem" - public var backgroundColor: String? - public var view: StackItem? - - public var molecule: MoleculeProtocol - public var spacing: CGFloat? = 16 - public var percentage: Int? = 0 - public var verticalAlignment: UIStackView.Alignment? - public var horizontalAlignment: UIStackView.Alignment? - public var useHorizontalMargins: Bool? = false - public var useVerticalMargins: Bool? = false - public var gone: Bool? = false - -<<<<<<< HEAD - enum CodingKeys: String, CodingKey { - case molecule - case spacing - case percentage - case verticalAlignment - case horizontalAlignment - case useHorizontalMargins - case useVerticalMargins - case gone - } - - required public init(from decoder: Decoder) throws { - let typeContainer = try decoder.container(keyedBy: CodingKeys.self) - molecule = try typeContainer.decodeMolecule(codingKey: .molecule) - spacing = try typeContainer.decodeIfPresent(CGFloat.self, forKey: .spacing) - percentage = try typeContainer.decodeIfPresent(Int.self, forKey: .percentage) - if let verticalAlignmentString = try typeContainer.decodeIfPresent(String.self, forKey: .verticalAlignment) { - verticalAlignment = ContainerHelper.getAlignment(for: verticalAlignmentString) - } - if let horizontalAlignmentString = try typeContainer.decodeIfPresent(String.self, forKey: .horizontalAlignment) { - horizontalAlignment = ContainerHelper.getAlignment(for: horizontalAlignmentString) - } - useVerticalMargins = try typeContainer.decodeIfPresent(Bool.self, forKey: .useVerticalMargins) - useHorizontalMargins = try typeContainer.decodeIfPresent(Bool.self, forKey: .useHorizontalMargins) - gone = try typeContainer.decodeIfPresent(Bool.self, forKey: .gone) - } - - public func encode(to encoder: Encoder) throws { - var container = encoder.container(keyedBy: CodingKeys.self) - try container.encodeModel(molecule, forKey: .molecule) - try container.encodeIfPresent(spacing, forKey: .spacing) - try container.encodeIfPresent(percentage, forKey: .percentage) - try container.encodeIfPresent(ContainerHelper.getAlignmentString(for: verticalAlignment), forKey: .verticalAlignment) - try container.encodeIfPresent(ContainerHelper.getAlignmentString(for: horizontalAlignment), forKey: .horizontalAlignment) - try container.encodeIfPresent(useVerticalMargins, forKey: .useVerticalMargins) - try container.encodeIfPresent(useHorizontalMargins, forKey: .useHorizontalMargins) - try container.encodeIfPresent(gone, forKey: .gone) -======= - init(with view: StackItem) { - self.view = view - view.containerModel = self - } - - init(with view: StackItem, json: [AnyHashable: Any]?) { - self.view = view - view.containerModel = self - update(with: json) ->>>>>>> e36d487d326f710d7302c6d9bcb758d209ad329c - } - - func update(with json: [AnyHashable: Any]?) { - gone = json?.boolForKey("gone") ?? (json == nil) - spacing = json?.optionalCGFloatForKey("spacing") - percentage = json?["percent"] as? Int - if let horizontalAlignmentString = json?.optionalStringForKey("horizontalAlignment") { - horizontalAlignment = ContainerHelper.getAlignment(for: horizontalAlignmentString) - } else { - horizontalAlignment = nil - } - - if let verticalAlignmentString = json?.optionalStringForKey("verticalAlignment") { - verticalAlignment = ContainerHelper.getAlignment(for: verticalAlignmentString) - } else { - verticalAlignment = nil - } - - useHorizontalMargins = json?.optionalBoolForKey("useHorizontalMargins") ?? false - useVerticalMargins = json?.optionalBoolForKey("useVerticalMargins") ?? false - } -} - -open class StackItem: MoleculeContainer { - - -} diff --git a/MVMCoreUI/Molecules/ModuleMolecule.swift.orig b/MVMCoreUI/Molecules/ModuleMolecule.swift.orig deleted file mode 100644 index d350171a..00000000 --- a/MVMCoreUI/Molecules/ModuleMolecule.swift.orig +++ /dev/null @@ -1,116 +0,0 @@ -// -// ModuleMolecule.swift -// MVMCoreUI -// -// Created by Scott Pfeil on 6/25/19. -// Copyright © 2019 Verizon Wireless. All rights reserved. -// - -import UIKit - -open class ModuleMoleculeModel: ContainerModelProtocol { - public static var identifier: String = "moduleMolecule" - - public var molecule: MoleculeProtocol? - public var moduleName: String - public var horizontalAlignment: UIStackView.Alignment? = .fill - public var verticalAlignment: UIStackView.Alignment? = .fill - public var useHorizontalMargins: Bool? = false - public var useVerticalMargins: Bool? = false - - enum CodingKeys: String, CodingKey { - case molecule - case moduleName - case horizontalAlignment - case verticalAlignment - case useHorizontalMargins - case useVerticalMargins - } - - required public init(from decoder: Decoder) throws { - let typeContainer = try decoder.container(keyedBy: CodingKeys.self) - moduleName = try typeContainer.decode(String.self, forKey:.moduleName) - if let verticalAlignmentString = try typeContainer.decodeIfPresent(String.self, forKey: .verticalAlignment) { - verticalAlignment = ContainerHelper.getAlignment(for: verticalAlignmentString) - } - if let horizontalAlignmentString = try typeContainer.decodeIfPresent(String.self, forKey: .horizontalAlignment) { - horizontalAlignment = ContainerHelper.getAlignment(for: horizontalAlignmentString) - } - useVerticalMargins = try typeContainer.decodeIfPresent(Bool.self, forKey: .useVerticalMargins) - useHorizontalMargins = try typeContainer.decodeIfPresent(Bool.self, forKey: .useHorizontalMargins) - } - - public func encode(to encoder: Encoder) throws { - var container = encoder.container(keyedBy: CodingKeys.self) - try container.encode(moduleName, forKey: .moduleName) - try container.encodeIfPresent(ContainerHelper.getAlignmentString(for: verticalAlignment), forKey: .verticalAlignment) - try container.encodeIfPresent(ContainerHelper.getAlignmentString(for: horizontalAlignment), forKey: .horizontalAlignment) - try container.encodeIfPresent(useVerticalMargins, forKey: .useVerticalMargins) - try container.encodeIfPresent(useHorizontalMargins, forKey: .useHorizontalMargins) - } -} - -open class ModuleMolecule: Container { -<<<<<<< HEAD - var moduleMoleculeModel: ModuleMoleculeModel? { - get { return model as? ModuleMoleculeModel } -======= - public override func setupView() { - super.setupView() - containerModel = ModuleMoleculeModel() ->>>>>>> e36d487d326f710d7302c6d9bcb758d209ad329c - } - - open override func setWithModel(_ model: MoleculeProtocol?, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [String : AnyHashable]?) { - #warning("need to change getter to get moduleModel instead to use.") - super.setWithModel(model, delegateObject, additionalData) - } - - // MARK: - MVMCoreUIMoleculeViewProtocol - open override func setWithJSON(_ json: [AnyHashable: Any]?, delegateObject: MVMCoreUIDelegateObject?, additionalData: [AnyHashable: Any]?) { - super.setWithJSON(json, delegateObject: delegateObject, additionalData: additionalData) - - guard let moduleName = json?.optionalStringForKey("moduleName"), let module = delegateObject?.moleculeDelegate?.getModuleWithName(moduleName) else { - // Critical error - return - } - - if view == nil { - if let moleculeView = MVMCoreUIMoleculeMappingObject.shared()?.createMolecule(forJSON: module, delegateObject: delegateObject, constrainIfNeeded: false) { - addAndContain(moleculeView) - } - } else { - (view as? MVMCoreUIMoleculeViewProtocol)?.setWithJSON(module, delegateObject: delegateObject, additionalData: additionalData) - } - } - - public class func estimatedHeight(forRow json: [AnyHashable : Any]?, delegateObject: MVMCoreUIDelegateObject?) -> CGFloat { - guard let moduleName = json?.optionalStringForKey("moduleName"), let module = delegateObject?.moleculeDelegate?.getModuleWithName(moduleName) else { - // Critical error - return 0 - } - return MVMCoreUIMoleculeMappingObject.shared()?.getMoleculeClass(withJSON: module)?.estimatedHeight?(forRow: module, delegateObject: delegateObject) ?? 0 - } - - public class func name(forReuse molecule: [AnyHashable : Any]?, delegateObject: MVMCoreUIDelegateObject?) -> String? { - guard let moduleName = molecule?.optionalStringForKey("moduleName"), let module = delegateObject?.moleculeDelegate?.getModuleWithName(moduleName) else { - // Critical error - return "moduleMolecule<>" - } - return "moduleMolecule<" + (MVMCoreUIMoleculeMappingObject.shared()?.getMoleculeClass(withJSON: module)?.name?(forReuse: module, delegateObject: delegateObject) ?? module.stringForkey(KeyMoleculeName)) + ">" - } - - public class func requiredModules(_ json: [AnyHashable : Any]?, delegateObject: MVMCoreUIDelegateObject?, error: AutoreleasingUnsafeMutablePointer?) -> [String]? { - let moduleName = json?.optionalStringForKey("moduleName") - if moduleName == nil || delegateObject?.moleculeDelegate?.getModuleWithName(moduleName) == nil { - if let errorObject = MVMCoreErrorObject(title: nil, message: MVMCoreGetterUtility.hardcodedString(withKey: HardcodedErrorUnableToProcess), code: CoreUIErrorCode.ErrorCodeModuleMolecule.rawValue, domain: ErrorDomainNative, location: String(describing: self)) { - error?.pointee = errorObject - MVMCoreUILoggingHandler.shared()?.addError(toLog: errorObject) - } - } - if let moduleName = moduleName { - return [moduleName] - } - return nil - } -} diff --git a/MVMCoreUI/Molecules/StandardHeaderView.swift.orig b/MVMCoreUI/Molecules/StandardHeaderView.swift.orig deleted file mode 100644 index 1eee69b8..00000000 --- a/MVMCoreUI/Molecules/StandardHeaderView.swift.orig +++ /dev/null @@ -1,90 +0,0 @@ -// -// StandardHeaderView.swift -// MVMCoreUI -// -// Created by Scott Pfeil on 2/12/19. -// Copyright © 2019 Verizon Wireless. All rights reserved. -// - -import UIKit - -public class StandardHeaderView: MoleculeContainer { - var line: Line? - - // MARK: - MVMCoreViewProtocol - open override func updateView(_ size: CGFloat) { - super.updateView(size) - line?.updateView(size) - } - - public override func setupView() { - super.setupView() - topMarginPadding = PaddingDefaultVerticalSpacing - bottomMarginPadding = PaddingDefaultVerticalSpacing - - guard line == nil else { return } - let line = Line() - line.style = .heavy - addSubview(line) - NSLayoutConstraint.pinViewBottom(toSuperview: line, useMargins: false, constant: 0).isActive = true - NSLayoutConstraint.pinViewLeft(toSuperview: line, useMargins: true, constant: 0).isActive = true - NSLayoutConstraint.pinViewRight(toSuperview: line, useMargins: true, constant: 0).isActive = true - self.line = line - } - - // MARK: - MVMCoreUIMoleculeViewProtocol - open override func setWithJSON(_ json: [AnyHashable: Any]?, delegateObject: MVMCoreUIDelegateObject?, additionalData: [AnyHashable: Any]?) { - super.setWithJSON(json, delegateObject: delegateObject, additionalData: additionalData) - if let separatorJSON = json?.optionalDictionaryForKey("separator") { - line?.setWithJSON(separatorJSON, delegateObject: delegateObject, additionalData: additionalData) - } - } - -<<<<<<< HEAD - open override func setWithModel(_ model: MoleculeProtocol?, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [String : AnyHashable]?) { - super.setWithModel(model, delegateObject, additionalData) - - guard let headerModel = model as? HeaderModel else { - return - } - - if let seperatorModel = headerModel.seperator as? LineModel { - line?.setWithJSON(seperatorModel.toJSON(), delegateObject: delegateObject, additionalData: additionalData) - } - } -======= -// open func setWithModel(_ model: MoleculeProtocol?, _ delegateObject: MVMCoreUIDelegateObject?, _ additionalData: [String : AnyHashable]?) { -// //TODO: Need to create setWithModel in ViewConstraining View -// -// #warning("This below call should be repaced with super.setWithModel once we get rid of ViewConstrainingView.") -// //TODO: This below call should be repaced with super.setWithModel once we get rid of ViewConstrainingView. -// setUpWithModel(model, delegateObject, additionalData) -// -// // This molecule will by default handle margins. -// (molecule as? MVMCoreUIViewConstrainingProtocol)?.shouldSetHorizontalMargins?(false) -// (molecule as? MVMCoreUIViewConstrainingProtocol)?.shouldSetVerticalMargins?(false) -// -// guard let headerModel = model as? HeaderModel else { -// return -// } -// -// if let seperatorModel = headerModel.seperator as? LineModel { -// line?.setWithJSON(seperatorModel.toJSON(), delegateObject: delegateObject, additionalData: additionalData) -// } -// } ->>>>>>> e36d487d326f710d7302c6d9bcb758d209ad329c - - open override func reset() { - super.reset() - line?.style = .heavy - topMarginPadding = PaddingDefaultVerticalSpacing - bottomMarginPadding = PaddingDefaultVerticalSpacing - } - - public class func estimatedHeight(forRow json: [AnyHashable : Any]?, delegateObject: MVMCoreUIDelegateObject?) -> CGFloat { - if let moleculeJSON = json?.optionalDictionaryForKey(KeyMolecule), let height = MVMCoreUIMoleculeMappingObject.shared()?.getMoleculeClass(withJSON: moleculeJSON)?.estimatedHeight?(forRow: moleculeJSON, delegateObject: delegateObject) { - return height + PaddingDefaultVerticalSpacing + PaddingDefaultVerticalSpacing - } - return 121 - } -}