Merge branch 'feature/monarch' into 'develop'
Feature/monarch ### Summary (a brief description of the change) ### JIRA Ticket (ticket URL here or remove the section) Co-authored-by: Matt Bruce <matt.bruce@verizon.com> Co-authored-by: Scott Pfeil <Scott.Pfeil3@verizonwireless.com> See merge request https://gitlab.verizon.com/BPHV_MIPS/mvm_core_ui/-/merge_requests/1107
@ -293,6 +293,7 @@
|
|||||||
AF1C336F2885A16A006B1001 /* ActionCollapseNotificationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF1C336E2885A16A006B1001 /* ActionCollapseNotificationHandler.swift */; };
|
AF1C336F2885A16A006B1001 /* ActionCollapseNotificationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF1C336E2885A16A006B1001 /* ActionCollapseNotificationHandler.swift */; };
|
||||||
AF1C33712885AE76006B1001 /* MVMCoreUIActionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF1C33702885AE76006B1001 /* MVMCoreUIActionHandler.swift */; };
|
AF1C33712885AE76006B1001 /* MVMCoreUIActionHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF1C33702885AE76006B1001 /* MVMCoreUIActionHandler.swift */; };
|
||||||
AF1C33732885D481006B1001 /* MVMCoreUIActionOpenPageHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF1C33722885D481006B1001 /* MVMCoreUIActionOpenPageHandler.swift */; };
|
AF1C33732885D481006B1001 /* MVMCoreUIActionOpenPageHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF1C33722885D481006B1001 /* MVMCoreUIActionOpenPageHandler.swift */; };
|
||||||
|
AF1CEFE82BEA73890001F9A5 /* VDSCoreTokens.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF1CEFE72BEA73890001F9A5 /* VDSCoreTokens.xcframework */; };
|
||||||
AF60A7F62892D2E300919EEB /* ActionDismissNotificationModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF60A7F52892D2E300919EEB /* ActionDismissNotificationModel.swift */; };
|
AF60A7F62892D2E300919EEB /* ActionDismissNotificationModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF60A7F52892D2E300919EEB /* ActionDismissNotificationModel.swift */; };
|
||||||
AF60A7F82892D34D00919EEB /* ActionDismissNotificationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF60A7F72892D34D00919EEB /* ActionDismissNotificationHandler.swift */; };
|
AF60A7F82892D34D00919EEB /* ActionDismissNotificationHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF60A7F72892D34D00919EEB /* ActionDismissNotificationHandler.swift */; };
|
||||||
AF766D262A3CD4C600749099 /* UIAccessibilityTraits+Codable.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF766D252A3CD4C600749099 /* UIAccessibilityTraits+Codable.swift */; };
|
AF766D262A3CD4C600749099 /* UIAccessibilityTraits+Codable.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF766D252A3CD4C600749099 /* UIAccessibilityTraits+Codable.swift */; };
|
||||||
@ -607,7 +608,6 @@
|
|||||||
EABFC1412763BB8D00E78B40 /* FormLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EABFC1402763BB8D00E78B40 /* FormLabel.swift */; };
|
EABFC1412763BB8D00E78B40 /* FormLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EABFC1402763BB8D00E78B40 /* FormLabel.swift */; };
|
||||||
EABFC152276913E800E78B40 /* FormLabelModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EABFC151276913E800E78B40 /* FormLabelModel.swift */; };
|
EABFC152276913E800E78B40 /* FormLabelModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EABFC151276913E800E78B40 /* FormLabelModel.swift */; };
|
||||||
EACCF38C2ABB346700E0F104 /* VDS-Interpreters.swift in Sources */ = {isa = PBXBuildFile; fileRef = EACCF38B2ABB346700E0F104 /* VDS-Interpreters.swift */; };
|
EACCF38C2ABB346700E0F104 /* VDS-Interpreters.swift in Sources */ = {isa = PBXBuildFile; fileRef = EACCF38B2ABB346700E0F104 /* VDS-Interpreters.swift */; };
|
||||||
EAD715AA2BBC8FAF00DEDA6A /* VDSTokens.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = EAD715A92BBC8FAF00DEDA6A /* VDSTokens.xcframework */; };
|
|
||||||
FD99130028E21E4900542CC3 /* RuleNotEqualsModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD9912FF28E21E4900542CC3 /* RuleNotEqualsModel.swift */; };
|
FD99130028E21E4900542CC3 /* RuleNotEqualsModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD9912FF28E21E4900542CC3 /* RuleNotEqualsModel.swift */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
@ -911,6 +911,7 @@
|
|||||||
AF1C336E2885A16A006B1001 /* ActionCollapseNotificationHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionCollapseNotificationHandler.swift; sourceTree = "<group>"; };
|
AF1C336E2885A16A006B1001 /* ActionCollapseNotificationHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionCollapseNotificationHandler.swift; sourceTree = "<group>"; };
|
||||||
AF1C33702885AE76006B1001 /* MVMCoreUIActionHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MVMCoreUIActionHandler.swift; sourceTree = "<group>"; };
|
AF1C33702885AE76006B1001 /* MVMCoreUIActionHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MVMCoreUIActionHandler.swift; sourceTree = "<group>"; };
|
||||||
AF1C33722885D481006B1001 /* MVMCoreUIActionOpenPageHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MVMCoreUIActionOpenPageHandler.swift; sourceTree = "<group>"; };
|
AF1C33722885D481006B1001 /* MVMCoreUIActionOpenPageHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MVMCoreUIActionOpenPageHandler.swift; sourceTree = "<group>"; };
|
||||||
|
AF1CEFE72BEA73890001F9A5 /* VDSCoreTokens.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = VDSCoreTokens.xcframework; path = ../SharedFrameworks/VDSCoreTokens.xcframework; sourceTree = "<group>"; };
|
||||||
AF60A7F52892D2E300919EEB /* ActionDismissNotificationModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionDismissNotificationModel.swift; sourceTree = "<group>"; };
|
AF60A7F52892D2E300919EEB /* ActionDismissNotificationModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionDismissNotificationModel.swift; sourceTree = "<group>"; };
|
||||||
AF60A7F72892D34D00919EEB /* ActionDismissNotificationHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionDismissNotificationHandler.swift; sourceTree = "<group>"; };
|
AF60A7F72892D34D00919EEB /* ActionDismissNotificationHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionDismissNotificationHandler.swift; sourceTree = "<group>"; };
|
||||||
AF766D252A3CD4C600749099 /* UIAccessibilityTraits+Codable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIAccessibilityTraits+Codable.swift"; sourceTree = "<group>"; };
|
AF766D252A3CD4C600749099 /* UIAccessibilityTraits+Codable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIAccessibilityTraits+Codable.swift"; sourceTree = "<group>"; };
|
||||||
@ -1244,9 +1245,9 @@
|
|||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
AF1CEFE82BEA73890001F9A5 /* VDSCoreTokens.xcframework in Frameworks */,
|
||||||
D29DF0E621E4F3C7003B2FB9 /* MVMCore.framework in Frameworks */,
|
D29DF0E621E4F3C7003B2FB9 /* MVMCore.framework in Frameworks */,
|
||||||
EA985C602970A3F000F2FF2E /* VDS.framework in Frameworks */,
|
EA985C602970A3F000F2FF2E /* VDS.framework in Frameworks */,
|
||||||
EAD715AA2BBC8FAF00DEDA6A /* VDSTokens.xcframework in Frameworks */,
|
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@ -2138,6 +2139,7 @@
|
|||||||
D29DF0E421E4F3C7003B2FB9 /* Frameworks */ = {
|
D29DF0E421E4F3C7003B2FB9 /* Frameworks */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
AF1CEFE72BEA73890001F9A5 /* VDSCoreTokens.xcframework */,
|
||||||
EAD715A92BBC8FAF00DEDA6A /* VDSTokens.xcframework */,
|
EAD715A92BBC8FAF00DEDA6A /* VDSTokens.xcframework */,
|
||||||
EA985C5F2970A3F000F2FF2E /* VDS.framework */,
|
EA985C5F2970A3F000F2FF2E /* VDS.framework */,
|
||||||
D29DF0E521E4F3C7003B2FB9 /* MVMCore.framework */,
|
D29DF0E521E4F3C7003B2FB9 /* MVMCore.framework */,
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
import UIKit
|
import UIKit
|
||||||
import VDSTokens
|
import VDSCoreTokens
|
||||||
import VDS
|
import VDS
|
||||||
import MVMCore
|
import MVMCore
|
||||||
|
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
import UIKit
|
import UIKit
|
||||||
import VDSTokens
|
import VDSCoreTokens
|
||||||
import VDS
|
import VDS
|
||||||
|
|
||||||
open class Link: VDS.TextLink, VDSMoleculeViewProtocol {
|
open class Link: VDS.TextLink, VDSMoleculeViewProtocol {
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
import UIKit
|
import UIKit
|
||||||
import VDSTokens
|
import VDSCoreTokens
|
||||||
import VDS
|
import VDS
|
||||||
import MVMCore
|
import MVMCore
|
||||||
import Combine
|
import Combine
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
import UIKit
|
import UIKit
|
||||||
import VDSTokens
|
import VDSCoreTokens
|
||||||
|
|
||||||
@objcMembers open class RadioButton: Control, MFButtonProtocol {
|
@objcMembers open class RadioButton: Control, MFButtonProtocol {
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
// Created by Kevin Christiano on 1/30/20.
|
// Created by Kevin Christiano on 1/30/20.
|
||||||
// Copyright © 2020 Verizon Wireless. All rights reserved.
|
// Copyright © 2020 Verizon Wireless. All rights reserved.
|
||||||
//
|
//
|
||||||
import VDSTokens
|
import VDSCoreTokens
|
||||||
|
|
||||||
open class CarouselIndicator: Control, CarouselPageControlProtocol {
|
open class CarouselIndicator: Control, CarouselPageControlProtocol {
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
import VDSTokens
|
import VDSCoreTokens
|
||||||
|
|
||||||
open class CarouselIndicatorModel: CarouselPagingModelProtocol, MoleculeModelProtocol, EnableableModelProtocol {
|
open class CarouselIndicatorModel: CarouselPagingModelProtocol, MoleculeModelProtocol, EnableableModelProtocol {
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
import VDS
|
import VDS
|
||||||
import VDSTokens
|
import VDSCoreTokens
|
||||||
|
|
||||||
open class IconModel: MoleculeModelProtocol {
|
open class IconModel: MoleculeModelProtocol {
|
||||||
|
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
import UIKit
|
import UIKit
|
||||||
import VDSTokens
|
import VDSCoreTokens
|
||||||
import VDS
|
import VDS
|
||||||
|
|
||||||
public class LineModel: MoleculeModelProtocol, Invertable {
|
public class LineModel: MoleculeModelProtocol, Invertable {
|
||||||
|
|||||||
@ -34,6 +34,7 @@ open class TileContainerModel: TileContainerBaseModel<TileContainer.Padding, Til
|
|||||||
case moleculeName
|
case moleculeName
|
||||||
case molecule
|
case molecule
|
||||||
}
|
}
|
||||||
|
|
||||||
required public init(from decoder: Decoder) throws {
|
required public init(from decoder: Decoder) throws {
|
||||||
let container = try decoder.container(keyedBy: CodingKeys.self)
|
let container = try decoder.container(keyedBy: CodingKeys.self)
|
||||||
id = try container.decodeIfPresent(String.self, forKey: .id) ?? UUID().uuidString
|
id = try container.decodeIfPresent(String.self, forKey: .id) ?? UUID().uuidString
|
||||||
@ -84,6 +85,7 @@ open class TileContainerBaseModel<PaddingType: DefaultValuing & Codable, TileCon
|
|||||||
case aspectRatio
|
case aspectRatio
|
||||||
case backgroundEffect
|
case backgroundEffect
|
||||||
}
|
}
|
||||||
|
|
||||||
required public init(from decoder: Decoder) throws {
|
required public init(from decoder: Decoder) throws {
|
||||||
let container = try decoder.container(keyedBy: CodingKeys.self)
|
let container = try decoder.container(keyedBy: CodingKeys.self)
|
||||||
inverted = try container.decodeIfPresent(Bool.self, forKey: .inverted) ?? false
|
inverted = try container.decodeIfPresent(Bool.self, forKey: .inverted) ?? false
|
||||||
@ -98,7 +100,6 @@ open class TileContainerBaseModel<PaddingType: DefaultValuing & Codable, TileCon
|
|||||||
color = try container.decodeIfPresent(TileContainerType.BackgroundColor.self, forKey: .color) ?? .black
|
color = try container.decodeIfPresent(TileContainerType.BackgroundColor.self, forKey: .color) ?? .black
|
||||||
aspectRatio = try container.decodeIfPresent(TileContainerType.AspectRatio.self, forKey: .aspectRatio) ?? .ratio1x1
|
aspectRatio = try container.decodeIfPresent(TileContainerType.AspectRatio.self, forKey: .aspectRatio) ?? .ratio1x1
|
||||||
backgroundEffect = try container.decodeIfPresent(TileContainerType.BackgroundEffect.self, forKey: .backgroundEffect) ?? .none
|
backgroundEffect = try container.decodeIfPresent(TileContainerType.BackgroundEffect.self, forKey: .backgroundEffect) ?? .none
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public func encode(to encoder: Encoder) throws {
|
public func encode(to encoder: Encoder) throws {
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
import VDS
|
import VDS
|
||||||
import VDSTokens
|
import VDSCoreTokens
|
||||||
import MVMCore
|
import MVMCore
|
||||||
|
|
||||||
open class TooltipModel: MoleculeModelProtocol {
|
open class TooltipModel: MoleculeModelProtocol {
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
import VDS
|
import VDS
|
||||||
import VDSTokens
|
import VDSCoreTokens
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Codable Extensions
|
// MARK: - Codable Extensions
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
// Copyright © 2022 Verizon Wireless. All rights reserved.
|
// Copyright © 2022 Verizon Wireless. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
import VDSTokens
|
import VDSCoreTokens
|
||||||
import VDS
|
import VDS
|
||||||
|
|
||||||
public class TitleLockupModel: ParentMoleculeModelProtocol {
|
public class TitleLockupModel: ParentMoleculeModelProtocol {
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
// Created by Scott Pfeil on 5/28/20.
|
// Created by Scott Pfeil on 5/28/20.
|
||||||
// Copyright © 2020 Verizon Wireless. All rights reserved.
|
// Copyright © 2020 Verizon Wireless. All rights reserved.
|
||||||
//
|
//
|
||||||
import VDSTokens
|
import VDSCoreTokens
|
||||||
|
|
||||||
@objcMembers open class TabBar: UITabBar, MoleculeViewProtocol, TabBarProtocol, UITabBarDelegate {
|
@objcMembers open class TabBar: UITabBar, MoleculeViewProtocol, TabBarProtocol, UITabBarDelegate {
|
||||||
|
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
import VDSTokens
|
import VDSCoreTokens
|
||||||
|
|
||||||
open class TabBarModel: MoleculeModelProtocol {
|
open class TabBarModel: MoleculeModelProtocol {
|
||||||
public static var identifier: String = "tabBar"
|
public static var identifier: String = "tabBar"
|
||||||
@ -34,7 +34,7 @@ open class TabBarModel: MoleculeModelProtocol {
|
|||||||
if let selectedColor = _selectedColor { return selectedColor }
|
if let selectedColor = _selectedColor { return selectedColor }
|
||||||
if let style = style,
|
if let style = style,
|
||||||
style == .dark { return Color(uiColor: VDSColor.elementsPrimaryOndark) }
|
style == .dark { return Color(uiColor: VDSColor.elementsPrimaryOndark) }
|
||||||
return Color(uiColor: VDSColor.elementsPrimaryOnlight)
|
return Color(uiColor: UIColor.mvmRed)
|
||||||
}
|
}
|
||||||
set {
|
set {
|
||||||
_selectedColor = newValue
|
_selectedColor = newValue
|
||||||
@ -54,7 +54,7 @@ open class TabBarModel: MoleculeModelProtocol {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
open var style: NavigationItemStyle? = .dark
|
open var style: NavigationItemStyle? = .light
|
||||||
|
|
||||||
// Must be capped to 0...(tabs.count - 1)
|
// Must be capped to 0...(tabs.count - 1)
|
||||||
open var selectedTab: Int = 0
|
open var selectedTab: Int = 0
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
import UIKit
|
import UIKit
|
||||||
import VDSTokens
|
import VDSCoreTokens
|
||||||
import VDS
|
import VDS
|
||||||
|
|
||||||
@objc public protocol TabsDelegate {
|
@objc public protocol TabsDelegate {
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
import UIKit
|
import UIKit
|
||||||
import VDSTokens
|
import VDSCoreTokens
|
||||||
import VDS
|
import VDS
|
||||||
open class TabsModel: MoleculeModelProtocol {
|
open class TabsModel: MoleculeModelProtocol {
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
// Copyright © 2020 Verizon Wireless. All rights reserved.
|
// Copyright © 2020 Verizon Wireless. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
import VDSTokens
|
import VDSCoreTokens
|
||||||
|
|
||||||
public enum NavigationItemStyle: String, Codable {
|
public enum NavigationItemStyle: String, Codable {
|
||||||
case light
|
case light
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import Foundation
|
|||||||
import Combine
|
import Combine
|
||||||
import Dispatch
|
import Dispatch
|
||||||
import MVMCore
|
import MVMCore
|
||||||
import VDSTokens
|
import VDSCoreTokens
|
||||||
|
|
||||||
@objcMembers open class CollapsableNotification: View {
|
@objcMembers open class CollapsableNotification: View {
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
|
|||||||
@ -179,6 +179,7 @@ open class Carousel: View {
|
|||||||
{
|
{
|
||||||
// Prevents a carousel reset while still updating the cell backing data through reconfigureItems.
|
// Prevents a carousel reset while still updating the cell backing data through reconfigureItems.
|
||||||
MVMCoreLoggingHandler.shared()?.handleDebugMessage("[\(Self.self)] Model is visually equivalent. Skipping rebuild...")
|
MVMCoreLoggingHandler.shared()?.handleDebugMessage("[\(Self.self)] Model is visually equivalent. Skipping rebuild...")
|
||||||
|
prepareMolecules(with: carouselModel)
|
||||||
FormValidator.setupValidation(for: carouselModel, delegate: delegateObject?.formHolderDelegate)
|
FormValidator.setupValidation(for: carouselModel, delegate: delegateObject?.formHolderDelegate)
|
||||||
updateModelIndex() // Ensure the new model indexing matches the old.
|
updateModelIndex() // Ensure the new model indexing matches the old.
|
||||||
pagingView?.currentIndex = pageIndex // Trigger a paging view render.
|
pagingView?.currentIndex = pageIndex // Trigger a paging view render.
|
||||||
|
|||||||
@ -56,13 +56,14 @@ open class ThreeLayerTableViewController: ProgrammaticTableViewController, Rotor
|
|||||||
}
|
}
|
||||||
|
|
||||||
open override func updateUI(for molecules: [MoleculeModelProtocol]? = nil) {
|
open override func updateUI(for molecules: [MoleculeModelProtocol]? = nil) {
|
||||||
|
let isFirstRender = self.isFirstRender
|
||||||
super.updateUI(for: molecules)
|
super.updateUI(for: molecules)
|
||||||
|
|
||||||
guard molecules == nil else { return }
|
guard molecules == nil else { return }
|
||||||
|
|
||||||
createViewForTableHeader()
|
createViewForTableHeader()
|
||||||
createViewForTableFooter()
|
createViewForTableFooter()
|
||||||
tableView?.reloadData()
|
// Reloading the table is handled in updateViews.
|
||||||
}
|
}
|
||||||
|
|
||||||
override open func viewDidLoad() {
|
override open func viewDidLoad() {
|
||||||
|
|||||||
@ -7,6 +7,7 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
import UIKit
|
import UIKit
|
||||||
|
import VDSCoreTokens
|
||||||
|
|
||||||
public typealias ColorHexTuple = (uiColor: UIColor, hex: String)
|
public typealias ColorHexTuple = (uiColor: UIColor, hex: String)
|
||||||
|
|
||||||
@ -19,7 +20,8 @@ extension UIColor {
|
|||||||
/// Dictionary to access brand approved colors by name.
|
/// Dictionary to access brand approved colors by name.
|
||||||
public static let names: [String: ColorHexTuple] = ["black": (.mvmBlack, "#000000"),
|
public static let names: [String: ColorHexTuple] = ["black": (.mvmBlack, "#000000"),
|
||||||
"white": (.mvmWhite, "#FFFFFF"),
|
"white": (.mvmWhite, "#FFFFFF"),
|
||||||
"red": (.mvmRed, "#D52B1E"),
|
"red": (.mvmRed, "#EE0000"),
|
||||||
|
"monarchRed": (VDSCoreTokens.VDSColor.paletteMonarchred, "#f50a23"),
|
||||||
"pink": (.mvmPink, "#D90368"),
|
"pink": (.mvmPink, "#D90368"),
|
||||||
"pink33": (.mvmPink33, "#F2ABCD"),
|
"pink33": (.mvmPink33, "#F2ABCD"),
|
||||||
"pink66": (.mvmPink66, "#E6589B"),
|
"pink66": (.mvmPink66, "#E6589B"),
|
||||||
@ -48,13 +50,20 @@ extension UIColor {
|
|||||||
"blueShade2": (.mvmBlueShade2, "#0B4467"),
|
"blueShade2": (.mvmBlueShade2, "#0B4467"),
|
||||||
"blueInverted": (.mvmBlueInverted, "#0088CE"),
|
"blueInverted": (.mvmBlueInverted, "#0088CE"),
|
||||||
"yellow": (.mvmYellow, "#FFBC3D"),
|
"yellow": (.mvmYellow, "#FFBC3D"),
|
||||||
|
"neonYellow": (VDSCoreTokens.VDSColor.paletteNeonyellow, "#f5ff1e"),
|
||||||
"coolGray1": (.mvmCoolGray1, "#F6F6F6"),
|
"coolGray1": (.mvmCoolGray1, "#F6F6F6"),
|
||||||
"coolGray3": (.mvmCoolGray3, "#D8DADA"),
|
"coolGray3": (.mvmCoolGray3, "#D8DADA"),
|
||||||
"coolGray6": (.mvmCoolGray6, "#747676"),
|
"coolGray6": (.mvmCoolGray6, "#747676"),
|
||||||
"coolGray10": (.mvmCoolGray10, "#333333"),
|
"coolGray10": (.mvmCoolGray10, "#333333"),
|
||||||
"upGold1": (.vzupGold1, "#F9D542"),
|
"upGold1": (.vzupGold1, "#F9D542"),
|
||||||
"upGold2": (.vzupGold2, "#F4CA53"),
|
"upGold2": (.vzupGold2, "#F4CA53"),
|
||||||
"upGold3": (.vzupGold3, "#CC9B2D")]
|
"upGold3": (.vzupGold3, "#CC9B2D"),
|
||||||
|
"stone": (.stone, "#F3EDE0"),
|
||||||
|
"coral": (.coral, "#FF3C2D"),
|
||||||
|
"gray44": (.gray44, "#6F7171"),
|
||||||
|
"gray85": (.gray85, "#D8DADA"),
|
||||||
|
"gray95": (.gray95, "#F6F6F6")
|
||||||
|
]
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Helper
|
// MARK: - Helper
|
||||||
@ -82,9 +91,10 @@ extension UIColor {
|
|||||||
// MARK: - Red
|
// MARK: - Red
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
|
|
||||||
/// HEX: #D52B1E
|
/// HEX: #EE0000
|
||||||
|
@objc
|
||||||
public static let mvmRed = UIColor.assetColor(named: "red")
|
public static let mvmRed = UIColor.assetColor(named: "red")
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Pink
|
// MARK: - Pink
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
@ -190,7 +200,7 @@ extension UIColor {
|
|||||||
// MARK: - Yellow
|
// MARK: - Yellow
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
|
|
||||||
/// HEX: #FFBC3D
|
/// HEX: ##F5FF1E
|
||||||
public static let mvmYellow = UIColor.assetColor(named: "yellow")
|
public static let mvmYellow = UIColor.assetColor(named: "yellow")
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
@ -222,6 +232,25 @@ extension UIColor {
|
|||||||
/// HEX: #CC9B2D
|
/// HEX: #CC9B2D
|
||||||
public static let vzupGold3 = UIColor.assetColor(named: "upGold3")
|
public static let vzupGold3 = UIColor.assetColor(named: "upGold3")
|
||||||
|
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Monarch
|
||||||
|
//--------------------------------------------------
|
||||||
|
|
||||||
|
/// HEX: #F3EDE0
|
||||||
|
@objc public static let stone = VDSCoreTokens.VDSColor.paletteStone
|
||||||
|
|
||||||
|
// HEX:#FF3C2D
|
||||||
|
@objc public static let coral = VDSCoreTokens.VDSColor.paletteCoral
|
||||||
|
|
||||||
|
// HEX:#6F7171
|
||||||
|
@objc public static let gray44 = VDSCoreTokens.VDSColor.paletteGray44
|
||||||
|
|
||||||
|
// HEX:#D8DADA
|
||||||
|
@objc public static let gray85 = VDSCoreTokens.VDSColor.paletteGray85
|
||||||
|
|
||||||
|
// HEX:#F6F6F6
|
||||||
|
@objc public static let gray95 = VDSCoreTokens.VDSColor.paletteGray95
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Functions
|
// MARK: - Functions
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
|
|||||||
@ -77,7 +77,7 @@
|
|||||||
#pragma mark - legacy
|
#pragma mark - legacy
|
||||||
|
|
||||||
+ (nonnull UIColor *)mfRedColor {
|
+ (nonnull UIColor *)mfRedColor {
|
||||||
return [UIColor colorWithRed:.804 green:.016 blue:.043 alpha:1.0];
|
return [UIColor mvmRed];
|
||||||
}
|
}
|
||||||
|
|
||||||
+ (nonnull UIColor *)mfDarkerRedColor {
|
+ (nonnull UIColor *)mfDarkerRedColor {
|
||||||
@ -307,8 +307,6 @@
|
|||||||
static dispatch_once_t once;
|
static dispatch_once_t once;
|
||||||
dispatch_once(&once, ^{
|
dispatch_once(&once, ^{
|
||||||
stringColorMapping = @{@"PrimaryRed":[UIColor mfRedColor],
|
stringColorMapping = @{@"PrimaryRed":[UIColor mfRedColor],
|
||||||
@"black":[UIColor blackColor],
|
|
||||||
@"red":[UIColor mfRedColor],
|
|
||||||
@"greyish":[UIColor mfLightGrayColor],
|
@"greyish":[UIColor mfLightGrayColor],
|
||||||
@"robinsEggBlue" : [UIColor mfRobinsEggBlue],
|
@"robinsEggBlue" : [UIColor mfRobinsEggBlue],
|
||||||
@"lightSalmon" : [UIColor mfLightSalmon],
|
@"lightSalmon" : [UIColor mfLightSalmon],
|
||||||
|
|||||||
@ -1,20 +1,20 @@
|
|||||||
{
|
{
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
},
|
|
||||||
"colors" : [
|
"colors" : [
|
||||||
{
|
{
|
||||||
"idiom" : "universal",
|
|
||||||
"color" : {
|
"color" : {
|
||||||
"color-space" : "srgb",
|
"color-space" : "srgb",
|
||||||
"components" : {
|
"components" : {
|
||||||
"red" : "0xD5",
|
|
||||||
"alpha" : "1.000",
|
"alpha" : "1.000",
|
||||||
"blue" : "0x1E",
|
"blue" : "0x00",
|
||||||
"green" : "0x2B"
|
"green" : "0x00",
|
||||||
|
"red" : "0xEE"
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"idiom" : "universal"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
}
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@ -1,20 +1,20 @@
|
|||||||
{
|
{
|
||||||
"info" : {
|
|
||||||
"version" : 1,
|
|
||||||
"author" : "xcode"
|
|
||||||
},
|
|
||||||
"colors" : [
|
"colors" : [
|
||||||
{
|
{
|
||||||
"idiom" : "universal",
|
|
||||||
"color" : {
|
"color" : {
|
||||||
"color-space" : "srgb",
|
"color-space" : "srgb",
|
||||||
"components" : {
|
"components" : {
|
||||||
"red" : "0xFF",
|
|
||||||
"alpha" : "1.000",
|
"alpha" : "1.000",
|
||||||
"blue" : "0x3D",
|
"blue" : "0x3D",
|
||||||
"green" : "0xBC"
|
"green" : "0xBC",
|
||||||
|
"red" : "0xFF"
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"idiom" : "universal"
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
}
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
import MVMCore
|
import MVMCore
|
||||||
import VDSTokens
|
import VDSCoreTokens
|
||||||
|
|
||||||
open class SubNavManagerController: ViewController, MVMCoreViewManagerProtocol, TabsDelegate, MVMCorePresentationDelegateProtocol, SubNavSwipeNavigationProtocol {
|
open class SubNavManagerController: ViewController, MVMCoreViewManagerProtocol, TabsDelegate, MVMCorePresentationDelegateProtocol, SubNavSwipeNavigationProtocol {
|
||||||
/// The number of tabs count or less that will turn on the fillContainer
|
/// The number of tabs count or less that will turn on the fillContainer
|
||||||
|
|||||||
@ -1,23 +1,15 @@
|
|||||||
{
|
{
|
||||||
"images" : [
|
"images" : [
|
||||||
{
|
{
|
||||||
"idiom" : "universal",
|
"filename" : "Vector.svg",
|
||||||
"filename" : "exportBlack.png",
|
"idiom" : "universal"
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"filename" : "exportBlack@2x.png",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"idiom" : "universal",
|
|
||||||
"filename" : "exportBlack@3x.png",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"info" : {
|
"info" : {
|
||||||
"version" : 1,
|
"author" : "xcode",
|
||||||
"author" : "xcode"
|
"version" : 1
|
||||||
|
},
|
||||||
|
"properties" : {
|
||||||
|
"preserves-vector-representation" : true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
3
MVMCoreUI/SupportingFiles/Media.xcassets/externalLink.imageset/Vector.svg
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M20 -3.05176e-05V7.11108H18.7555V2.1333L11.9555 8.9333L11.0666 8.04441L17.8666 1.25553H12.8889V-3.05176e-05H20ZM15 18.7555H1.25553V4.99997H12.2222L13.3333 3.75552H-2.28882e-05V20H16.2555V6.66664L15 7.77775V18.7555Z" fill="black"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 343 B |
|
Before Width: | Height: | Size: 345 B |
|
Before Width: | Height: | Size: 589 B |
|
Before Width: | Height: | Size: 869 B |
@ -1,23 +1,15 @@
|
|||||||
{
|
{
|
||||||
"images" : [
|
"images" : [
|
||||||
{
|
{
|
||||||
"filename" : "nav_back.png",
|
"filename" : "Vector.svg",
|
||||||
"idiom" : "universal",
|
"idiom" : "universal"
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "nav_back@2x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "nav_back@3x.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"info" : {
|
"info" : {
|
||||||
"author" : "xcode",
|
"author" : "xcode",
|
||||||
"version" : 1
|
"version" : 1
|
||||||
|
},
|
||||||
|
"properties" : {
|
||||||
|
"preserves-vector-representation" : true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
3
MVMCoreUI/SupportingFiles/Media.xcassets/nav_back.imageset/Vector.svg
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M20 10.6361H2.46073L10.9975 19.1001L10.0897 20L0 10L10.0897 0L10.9974 0.899867L2.46077 9.36388H20V10.6361Z" fill="black"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 235 B |
|
Before Width: | Height: | Size: 220 B |
|
Before Width: | Height: | Size: 302 B |
|
Before Width: | Height: | Size: 394 B |
|
Before Width: | Height: | Size: 435 B |
|
Before Width: | Height: | Size: 631 B |
|
Before Width: | Height: | Size: 257 B |
@ -1,23 +1,15 @@
|
|||||||
{
|
{
|
||||||
"images" : [
|
"images" : [
|
||||||
{
|
{
|
||||||
"filename" : "Close.png",
|
"filename" : "Vector.svg",
|
||||||
"idiom" : "universal",
|
"idiom" : "universal"
|
||||||
"scale" : "1x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "Close-1.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "2x"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"filename" : "Close-2.png",
|
|
||||||
"idiom" : "universal",
|
|
||||||
"scale" : "3x"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"info" : {
|
"info" : {
|
||||||
"author" : "xcode",
|
"author" : "xcode",
|
||||||
"version" : 1
|
"version" : 1
|
||||||
|
},
|
||||||
|
"properties" : {
|
||||||
|
"preserves-vector-representation" : true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
3
MVMCoreUI/SupportingFiles/Media.xcassets/nav_close.imageset/Vector.svg
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<svg width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M9.87772 9.00001L17.7777 16.8889L16.8888 17.7778L8.99995 9.87778L1.11106 17.7778L0.222168 16.8889L8.11106 9.00001L0.222168 1.11112L1.11106 0.222229L8.99995 8.11112L16.8888 0.222229L17.7777 1.11112L9.87772 9.00001Z" fill="black"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 342 B |