adding modal class specific models

This commit is contained in:
“subrra7” 2020-07-15 23:38:49 +05:30
parent 77be31f47f
commit 0ee938cf57
7 changed files with 101 additions and 14 deletions

View File

@ -105,6 +105,8 @@
0A9D09212433796500D2E6C0 /* CarouselIndicatorModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A9D091B2433796500D2E6C0 /* CarouselIndicatorModel.swift */; };
0A9D09222433796500D2E6C0 /* CarouselIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0A9D091C2433796500D2E6C0 /* CarouselIndicator.swift */; };
0AA33B3A2398524F0067DD0F /* Toggle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AA33B392398524F0067DD0F /* Toggle.swift */; };
0AB000BA24BF63490090C5E7 /* ModalListPageTemplateModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AB000B924BF63490090C5E7 /* ModalListPageTemplateModel.swift */; };
0AB000BC24BF64A50090C5E7 /* ModalStackPageTemplateModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AB000BB24BF64A50090C5E7 /* ModalStackPageTemplateModel.swift */; };
0AB764D124460F6300E7FE72 /* UIDatePicker+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AB764D024460F6300E7FE72 /* UIDatePicker+Extension.swift */; };
0AB764D324460FA400E7FE72 /* UIPickerView+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AB764D224460FA400E7FE72 /* UIPickerView+Extension.swift */; };
0ABD136D237CAD1E0081388D /* DateDropdownEntryField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ABD136C237CAD1E0081388D /* DateDropdownEntryField.swift */; };
@ -568,6 +570,8 @@
0A9D091C2433796500D2E6C0 /* CarouselIndicator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CarouselIndicator.swift; sourceTree = "<group>"; };
0AA33B33239813C50067DD0F /* UIColor+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIColor+Extension.swift"; sourceTree = "<group>"; };
0AA33B392398524F0067DD0F /* Toggle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Toggle.swift; sourceTree = "<group>"; };
0AB000B924BF63490090C5E7 /* ModalListPageTemplateModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModalListPageTemplateModel.swift; sourceTree = "<group>"; };
0AB000BB24BF64A50090C5E7 /* ModalStackPageTemplateModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModalStackPageTemplateModel.swift; sourceTree = "<group>"; };
0AB764D024460F6300E7FE72 /* UIDatePicker+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIDatePicker+Extension.swift"; sourceTree = "<group>"; };
0AB764D224460FA400E7FE72 /* UIPickerView+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIPickerView+Extension.swift"; sourceTree = "<group>"; };
0ABD136C237CAD1E0081388D /* DateDropdownEntryField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DateDropdownEntryField.swift; sourceTree = "<group>"; };
@ -1611,6 +1615,8 @@
D264FAA4243F66A500D98315 /* CollectionTemplateItemProtocol.swift */,
D264FA8B243BCD8E00D98315 /* CollectionTemplateModel.swift */,
D264FA8D243BCD9A00D98315 /* CollectionTemplate.swift */,
0AB000B924BF63490090C5E7 /* ModalListPageTemplateModel.swift */,
0AB000BB24BF64A50090C5E7 /* ModalStackPageTemplateModel.swift */,
);
path = Templates;
sourceTree = "<group>";
@ -2474,6 +2480,7 @@
D23EA7FB2475F09800D60C34 /* CarouselItemProtocol.swift in Sources */,
D2E2A9A323E096B1000B42E6 /* DisableableModelProtocol.swift in Sources */,
D29DF11821E6805F003B2FB9 /* NSLayoutConstraint+MFConvenience.m in Sources */,
0AB000BC24BF64A50090C5E7 /* ModalStackPageTemplateModel.swift in Sources */,
27F973532466074500CAB5C5 /* PageBehavior.swift in Sources */,
94C2D9A323872C110006CF46 /* LabelAttributeStrikeThroughModel.swift in Sources */,
D28A838523CCCA8900DFE4FC /* ScrollerModel.swift in Sources */,
@ -2502,6 +2509,7 @@
D236E5B5241FEB1000C38625 /* ListTwoColumnPriceDescriptionModel.swift in Sources */,
D2B18B922361E65A00A9AEDC /* CoreUIObject.swift in Sources */,
014AA72E23C5059B006F3E93 /* StackCenteredPageTemplateModel.swift in Sources */,
0AB000BA24BF63490090C5E7 /* ModalListPageTemplateModel.swift in Sources */,
D2A514632213643100345BFB /* MoleculeStackCenteredTemplate.swift in Sources */,
011D959D2404536F000E3791 /* RuleAnyValueChangedModel.swift in Sources */,
D260105923D0A92900764D80 /* ContainerProtocol.swift in Sources */,

View File

@ -18,7 +18,6 @@ import Foundation
}
public var molecules: [ListItemModelProtocol & MoleculeModelProtocol]?
public var line: LineModel?
public var closeAction: ActionModelProtocol?
//--------------------------------------------------
// MARK: - Initializer
@ -37,7 +36,6 @@ import Foundation
private enum CodingKeys: String, CodingKey {
case molecules
case line
case closeAction
}
//--------------------------------------------------
@ -48,7 +46,6 @@ import Foundation
let typeContainer = try decoder.container(keyedBy: CodingKeys.self)
molecules = try typeContainer.decodeModelsIfPresent(codingKey: .molecules)
line = try typeContainer.decodeIfPresent(LineModel.self, forKey: .line)
closeAction = try typeContainer.decodeModelIfPresent(codingKey: .closeAction)
try super.init(from: decoder)
}
@ -57,7 +54,6 @@ import Foundation
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encodeModelsIfPresent(molecules, forKey: .molecules)
try container.encode(line, forKey: .line)
try container.encodeModelIfPresent(closeAction, forKey: .closeAction)
}
}

View File

@ -0,0 +1,46 @@
//
// ModalListPageTemplateModel.swift
// MVMCoreUI
//
// Created by Subramaniam, Ramya on 15/07/20.
// Copyright © 2020 Verizon Wireless. All rights reserved.
//
import Foundation
@objcMembers open class ModalListPageTemplateModel: ListPageTemplateModel {
//--------------------------------------------------
// MARK: - Properties
//--------------------------------------------------
open override class var identifier: String {
return "modalList"
}
public var closeAction: ActionModelProtocol?
//--------------------------------------------------
// MARK: - Keys
//--------------------------------------------------
// private enum CodingKeys: String, CodingKey {
// case closeAction
// }
//
// //--------------------------------------------------
// // MARK: - Codec
// //--------------------------------------------------
//
// required public init(from decoder: Decoder) throws {
// let typeContainer = try decoder.container(keyedBy: CodingKeys.self)
// closeAction = try typeContainer.decodeModelIfPresent(codingKey: .closeAction)
// try super.init(from: decoder)
// }
//
// open override func encode(to encoder: Encoder) throws {
// try super.encode(to: encoder)
// var container = encoder.container(keyedBy: CodingKeys.self)
// try container.encodeModelIfPresent(closeAction, forKey: .closeAction)
// }
}

View File

@ -27,7 +27,7 @@ open class ModalMoleculeListTemplate: MoleculeListTemplate {
guard let self = self else {
return
}
guard let actionMap = self.templateModel?.closeAction else {
guard let model = self.templateModel as? ModalListPageTemplateModel, let actionMap = model.closeAction else {
MVMCoreActionHandler.shared()?.handleAction(with: ActionBackModel().toJSON(), additionalData: nil, delegateObject: self.delegateObjectIVar)
return
}

View File

@ -16,11 +16,11 @@ open class ModalMoleculeStackTemplate: MoleculeStackTemplate {
guard let self = self else {
return
}
guard let actionMap = self.templateModel?.closeAction else {
MVMCoreActionHandler.shared()?.handleAction(with: ActionBackModel().toJSON(), additionalData: nil, delegateObject: self.delegateObjectIVar)
return
}
MVMCoreActionHandler.shared()?.handleAction(with: actionMap.toJSON(), additionalData: nil, delegateObject: self.delegateObjectIVar)
// guard let actionMap = self.templateModel?.closeAction else {
// MVMCoreActionHandler.shared()?.handleAction(with: ActionBackModel().toJSON(), additionalData: nil, delegateObject: self.delegateObjectIVar)
// return
// }
// MVMCoreActionHandler.shared()?.handleAction(with: actionMap.toJSON(), additionalData: nil, delegateObject: self.delegateObjectIVar)
})
}
}

View File

@ -0,0 +1,41 @@
//
// ModalStackPageTemplateModel.swift
// MVMCoreUI
//
// Created by Subramaniam, Ramya on 15/07/20.
// Copyright © 2020 Verizon Wireless. All rights reserved.
//
import Foundation
@objcMembers public class ModalStackPageTemplateModel: ThreeLayerModelBase {
public override class var identifier: String {
return "modalStack"
}
public var moleculeStack: StackModel
public var closeAction: ActionModelProtocol?
public init(pageType: String, moleculeStack: StackModel) {
self.moleculeStack = moleculeStack
super.init(pageType: pageType)
}
private enum CodingKeys: String, CodingKey {
case stack
case closeAction
}
required public init(from decoder: Decoder) throws {
let typeContainer = try decoder.container(keyedBy: CodingKeys.self)
moleculeStack = try typeContainer.decode(StackModel.self, forKey: .stack)
closeAction = try typeContainer.decodeModelIfPresent(codingKey: .closeAction)
try super.init(from: decoder)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(moleculeStack, forKey: .stack)
try container.encodeModelIfPresent(closeAction, forKey: .closeAction)
}
}

View File

@ -14,7 +14,6 @@ import Foundation
return "stack"
}
public var moleculeStack: StackModel
public var closeAction: ActionModelProtocol?
public init(pageType: String, moleculeStack: StackModel) {
self.moleculeStack = moleculeStack
@ -23,13 +22,11 @@ import Foundation
private enum CodingKeys: String, CodingKey {
case stack
case closeAction
}
required public init(from decoder: Decoder) throws {
let typeContainer = try decoder.container(keyedBy: CodingKeys.self)
moleculeStack = try typeContainer.decode(StackModel.self, forKey: .stack)
closeAction = try typeContainer.decodeModelIfPresent(codingKey: .closeAction)
try super.init(from: decoder)
}
@ -37,6 +34,5 @@ import Foundation
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(moleculeStack, forKey: .stack)
try container.encodeModelIfPresent(closeAction, forKey: .closeAction)
}
}