initial button icon
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
parent
59a5c6a3e7
commit
c6fccb014a
@ -575,6 +575,8 @@
|
|||||||
EA05EFAB278DE53600828819 /* ClearableModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA05EFAA278DE53600828819 /* ClearableModelProtocol.swift */; };
|
EA05EFAB278DE53600828819 /* ClearableModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA05EFAA278DE53600828819 /* ClearableModelProtocol.swift */; };
|
||||||
EA1758482BC97ED800A5C0D9 /* BadgeIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA1758472BC97ED800A5C0D9 /* BadgeIndicator.swift */; };
|
EA1758482BC97ED800A5C0D9 /* BadgeIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA1758472BC97ED800A5C0D9 /* BadgeIndicator.swift */; };
|
||||||
EA17584A2BC97EF100A5C0D9 /* BadgeIndicatorModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA1758492BC97EF100A5C0D9 /* BadgeIndicatorModel.swift */; };
|
EA17584A2BC97EF100A5C0D9 /* BadgeIndicatorModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA1758492BC97EF100A5C0D9 /* BadgeIndicatorModel.swift */; };
|
||||||
|
EA17584C2BC9894800A5C0D9 /* ButtonIconModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA17584B2BC9894800A5C0D9 /* ButtonIconModel.swift */; };
|
||||||
|
EA17584E2BC9895A00A5C0D9 /* ButtonIcon.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA17584D2BC9895A00A5C0D9 /* ButtonIcon.swift */; };
|
||||||
EA41F4AC2787927100F5B377 /* DynamicRuleFormFieldEffectModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA41F4AB2787927100F5B377 /* DynamicRuleFormFieldEffectModel.swift */; };
|
EA41F4AC2787927100F5B377 /* DynamicRuleFormFieldEffectModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA41F4AB2787927100F5B377 /* DynamicRuleFormFieldEffectModel.swift */; };
|
||||||
EA5124FD243601600051A3A4 /* BGImageHeadlineBodyButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA5124FC243601600051A3A4 /* BGImageHeadlineBodyButton.swift */; };
|
EA5124FD243601600051A3A4 /* BGImageHeadlineBodyButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA5124FC243601600051A3A4 /* BGImageHeadlineBodyButton.swift */; };
|
||||||
EA5124FF2436018E0051A3A4 /* BGImageHeadlineBodyButtonModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA5124FE2436018E0051A3A4 /* BGImageHeadlineBodyButtonModel.swift */; };
|
EA5124FF2436018E0051A3A4 /* BGImageHeadlineBodyButtonModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA5124FE2436018E0051A3A4 /* BGImageHeadlineBodyButtonModel.swift */; };
|
||||||
@ -1179,6 +1181,8 @@
|
|||||||
EA05EFAA278DE53600828819 /* ClearableModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClearableModelProtocol.swift; sourceTree = "<group>"; };
|
EA05EFAA278DE53600828819 /* ClearableModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClearableModelProtocol.swift; sourceTree = "<group>"; };
|
||||||
EA1758472BC97ED800A5C0D9 /* BadgeIndicator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgeIndicator.swift; sourceTree = "<group>"; };
|
EA1758472BC97ED800A5C0D9 /* BadgeIndicator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgeIndicator.swift; sourceTree = "<group>"; };
|
||||||
EA1758492BC97EF100A5C0D9 /* BadgeIndicatorModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgeIndicatorModel.swift; sourceTree = "<group>"; };
|
EA1758492BC97EF100A5C0D9 /* BadgeIndicatorModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BadgeIndicatorModel.swift; sourceTree = "<group>"; };
|
||||||
|
EA17584B2BC9894800A5C0D9 /* ButtonIconModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonIconModel.swift; sourceTree = "<group>"; };
|
||||||
|
EA17584D2BC9895A00A5C0D9 /* ButtonIcon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ButtonIcon.swift; sourceTree = "<group>"; };
|
||||||
EA41F4AB2787927100F5B377 /* DynamicRuleFormFieldEffectModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DynamicRuleFormFieldEffectModel.swift; sourceTree = "<group>"; };
|
EA41F4AB2787927100F5B377 /* DynamicRuleFormFieldEffectModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DynamicRuleFormFieldEffectModel.swift; sourceTree = "<group>"; };
|
||||||
EA5124FC243601600051A3A4 /* BGImageHeadlineBodyButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BGImageHeadlineBodyButton.swift; sourceTree = "<group>"; };
|
EA5124FC243601600051A3A4 /* BGImageHeadlineBodyButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BGImageHeadlineBodyButton.swift; sourceTree = "<group>"; };
|
||||||
EA5124FE2436018E0051A3A4 /* BGImageHeadlineBodyButtonModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BGImageHeadlineBodyButtonModel.swift; sourceTree = "<group>"; };
|
EA5124FE2436018E0051A3A4 /* BGImageHeadlineBodyButtonModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BGImageHeadlineBodyButtonModel.swift; sourceTree = "<group>"; };
|
||||||
@ -2270,6 +2274,8 @@
|
|||||||
B4CC8FBC29DF34680005D28B /* Badge.swift */,
|
B4CC8FBC29DF34680005D28B /* Badge.swift */,
|
||||||
EA1758492BC97EF100A5C0D9 /* BadgeIndicatorModel.swift */,
|
EA1758492BC97EF100A5C0D9 /* BadgeIndicatorModel.swift */,
|
||||||
EA1758472BC97ED800A5C0D9 /* BadgeIndicator.swift */,
|
EA1758472BC97ED800A5C0D9 /* BadgeIndicator.swift */,
|
||||||
|
EA17584B2BC9894800A5C0D9 /* ButtonIconModel.swift */,
|
||||||
|
EA17584D2BC9895A00A5C0D9 /* ButtonIcon.swift */,
|
||||||
EA985C3F2970939A00F2FF2E /* TileletModel.swift */,
|
EA985C3F2970939A00F2FF2E /* TileletModel.swift */,
|
||||||
EA985C3D2970938F00F2FF2E /* Tilelet.swift */,
|
EA985C3D2970938F00F2FF2E /* Tilelet.swift */,
|
||||||
EA7D81612B2B6E7F00D29F9E /* IconModel.swift */,
|
EA7D81612B2B6E7F00D29F9E /* IconModel.swift */,
|
||||||
@ -2911,6 +2917,7 @@
|
|||||||
D22479942316AE5E003FCCF9 /* NSLayoutConstraintExtension.swift in Sources */,
|
D22479942316AE5E003FCCF9 /* NSLayoutConstraintExtension.swift in Sources */,
|
||||||
D2B18B94236214AD00A9AEDC /* NavigationController.swift in Sources */,
|
D2B18B94236214AD00A9AEDC /* NavigationController.swift in Sources */,
|
||||||
0A9D09222433796500D2E6C0 /* CarouselIndicator.swift in Sources */,
|
0A9D09222433796500D2E6C0 /* CarouselIndicator.swift in Sources */,
|
||||||
|
EA17584E2BC9895A00A5C0D9 /* ButtonIcon.swift in Sources */,
|
||||||
D29E28DA23D21AFA00ACEA85 /* StringAndMoleculeModel.swift in Sources */,
|
D29E28DA23D21AFA00ACEA85 /* StringAndMoleculeModel.swift in Sources */,
|
||||||
D260105D23D0BCD400764D80 /* Stack.swift in Sources */,
|
D260105D23D0BCD400764D80 /* Stack.swift in Sources */,
|
||||||
0A7EF85D23D8A95600B2AAD1 /* TextEntryFieldModel.swift in Sources */,
|
0A7EF85D23D8A95600B2AAD1 /* TextEntryFieldModel.swift in Sources */,
|
||||||
@ -2938,6 +2945,7 @@
|
|||||||
D22479962316AF6E003FCCF9 /* HeadlineBodyLink.swift in Sources */,
|
D22479962316AF6E003FCCF9 /* HeadlineBodyLink.swift in Sources */,
|
||||||
8DE5BECD2456F7A200772E76 /* ListTwoColumnDropdownSelectorsModel.swift in Sources */,
|
8DE5BECD2456F7A200772E76 /* ListTwoColumnDropdownSelectorsModel.swift in Sources */,
|
||||||
AA7F47732541AD560015A2C1 /* ListStarRatingModel.swift in Sources */,
|
AA7F47732541AD560015A2C1 /* ListStarRatingModel.swift in Sources */,
|
||||||
|
EA17584C2BC9894800A5C0D9 /* ButtonIconModel.swift in Sources */,
|
||||||
AA7F47762541AD6A0015A2C1 /* ListStarRating.swift in Sources */,
|
AA7F47762541AD6A0015A2C1 /* ListStarRating.swift in Sources */,
|
||||||
0A41BA7F23453A6400D4C0BC /* TextEntryField.swift in Sources */,
|
0A41BA7F23453A6400D4C0BC /* TextEntryField.swift in Sources */,
|
||||||
AF7E509829E477C1009DC2AD /* AlertHandler.swift in Sources */,
|
AF7E509829E477C1009DC2AD /* AlertHandler.swift in Sources */,
|
||||||
|
|||||||
9
MVMCoreUI/Atomic/Atoms/Views/ButtonIcon.swift
Normal file
9
MVMCoreUI/Atomic/Atoms/Views/ButtonIcon.swift
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
//
|
||||||
|
// ButtonIcon.swift
|
||||||
|
// MVMCoreUI
|
||||||
|
//
|
||||||
|
// Created by Matt Bruce on 4/12/24.
|
||||||
|
// Copyright © 2024 Verizon Wireless. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
80
MVMCoreUI/Atomic/Atoms/Views/ButtonIconModel.swift
Normal file
80
MVMCoreUI/Atomic/Atoms/Views/ButtonIconModel.swift
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
//
|
||||||
|
// ButtonIconModel.swift
|
||||||
|
// MVMCoreUI
|
||||||
|
//
|
||||||
|
// Created by Matt Bruce on 4/12/24.
|
||||||
|
// Copyright © 2024 Verizon Wireless. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import VDS
|
||||||
|
|
||||||
|
|
||||||
|
open class ButtonIconModel: MoleculeModelProtocol {
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - Properties
|
||||||
|
//--------------------------------------------------
|
||||||
|
public static var identifier: String = "buttonIcon"
|
||||||
|
public var id: String = UUID().uuidString
|
||||||
|
public var backgroundColor: Color?
|
||||||
|
|
||||||
|
//--------------------------------------------------
|
||||||
|
// MARK: - VDS Properties
|
||||||
|
//--------------------------------------------------
|
||||||
|
public var surface: Surface { inverted ? .dark : .light }
|
||||||
|
public var inverted: Bool = false
|
||||||
|
public var badgeIndicator: BadgeIndicatorModel?
|
||||||
|
public var expandDirection = ButtonIcon.BadgeIndicatorModel.ExpandDirection.right
|
||||||
|
public var kind = ButtonIcon.Kind.ghost
|
||||||
|
public var surfaceType = ButtonIcon.SurfaceType.colorFill
|
||||||
|
public var iconName: Icon.Name = .info
|
||||||
|
public var selectedIconName: Icon.Name?
|
||||||
|
public var size = ButtonIcon.Size.large
|
||||||
|
public var customSize : Int?
|
||||||
|
public var floating: Bool = false
|
||||||
|
public var fitToIcon: Bool = false
|
||||||
|
public var hideBorder: Bool = true
|
||||||
|
public var showBadgeIndicator: Bool = false
|
||||||
|
public var selectedable: Bool = false
|
||||||
|
public var iconOffSet: CGPoint = .zero
|
||||||
|
|
||||||
|
private enum CodingKeys: String, CodingKey {
|
||||||
|
case id
|
||||||
|
case inverted
|
||||||
|
case badgeIndicator
|
||||||
|
case expandDirection
|
||||||
|
case kind
|
||||||
|
case surfaceType
|
||||||
|
case iconName
|
||||||
|
case selectedIconName
|
||||||
|
case size
|
||||||
|
case customSize
|
||||||
|
case floating
|
||||||
|
case fitToIcon
|
||||||
|
case hideBorder
|
||||||
|
case showBadgeIndicator
|
||||||
|
case selectedable
|
||||||
|
case iconOffSet
|
||||||
|
}
|
||||||
|
|
||||||
|
required public convenience init(from decoder: Decoder) throws {
|
||||||
|
self.init()
|
||||||
|
let container = try decoder.container(keyedBy: CodingKeys.self)
|
||||||
|
id = try container.decodeIfPresent(String.self, forKey: .id) ?? UUID().uuidString
|
||||||
|
inverted = try container.decodeIfPresent(Bool.self, forKey: .inverted) ?? false
|
||||||
|
badgeIndicator = try container.decodeIfPresent(BadgeIndicatorModel.self, forKey: .badgeIndicator)
|
||||||
|
expandDirection = try container.decodeIfPresent(ButtonIcon.BadgeIndicatorModel.ExpandDirection.self, forKey: .expandDirection) ?? .right
|
||||||
|
kind = try container.decodeIfPresent(ButtonIcon.Kind.self, forKey: .kind) ?? .ghost
|
||||||
|
surfaceType = try container.decodeIfPresent(ButtonIcon.SurfaceType.self, forKey: .kind) ?? .colorFill
|
||||||
|
iconName = try container.decode(Icon.Name.self, forKey: .iconName)
|
||||||
|
selectedIconName = try container.decodeIfPresent(Icon.Name.self, forKey: .selectedIconName)
|
||||||
|
size = try container.decodeIfPresent(ButtonIcon.Size.self, forKey: .size) ?? .large
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public func encode(to encoder: Encoder) throws {
|
||||||
|
var container = encoder.container(keyedBy: CodingKeys.self)
|
||||||
|
try container.encode(id, forKey: .id)
|
||||||
|
try container.encode(inverted, forKey: .inverted)
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -20,6 +20,10 @@ extension VDS.BadgeIndicator.FillColor: Codable {}
|
|||||||
extension VDS.BadgeIndicator.Kind: Codable {}
|
extension VDS.BadgeIndicator.Kind: Codable {}
|
||||||
extension VDS.BadgeIndicator.MaximumDigits: Codable {}
|
extension VDS.BadgeIndicator.MaximumDigits: Codable {}
|
||||||
extension VDS.BadgeIndicator.Size: Codable {}
|
extension VDS.BadgeIndicator.Size: Codable {}
|
||||||
|
extension VDS.ButtonIcon.Kind: Codable {}
|
||||||
|
extension VDS.ButtonIcon.Size: Codable {}
|
||||||
|
extension VDS.ButtonIcon.BadgeIndicatorModel.ExpandDirection: Codable {}
|
||||||
|
extension VDS.ButtonIcon.SurfaceType: Codable {}
|
||||||
extension VDS.ButtonGroup.Alignment: Codable {}
|
extension VDS.ButtonGroup.Alignment: Codable {}
|
||||||
extension VDS.Icon.Name: Codable {}
|
extension VDS.Icon.Name: Codable {}
|
||||||
extension VDS.Icon.Size: Codable {}
|
extension VDS.Icon.Size: Codable {}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user