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 */; };
|
||||
EA1758482BC97ED800A5C0D9 /* BadgeIndicator.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA1758472BC97ED800A5C0D9 /* BadgeIndicator.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 */; };
|
||||
EA5124FD243601600051A3A4 /* BGImageHeadlineBodyButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA5124FC243601600051A3A4 /* BGImageHeadlineBodyButton.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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
@ -2270,6 +2274,8 @@
|
||||
B4CC8FBC29DF34680005D28B /* Badge.swift */,
|
||||
EA1758492BC97EF100A5C0D9 /* BadgeIndicatorModel.swift */,
|
||||
EA1758472BC97ED800A5C0D9 /* BadgeIndicator.swift */,
|
||||
EA17584B2BC9894800A5C0D9 /* ButtonIconModel.swift */,
|
||||
EA17584D2BC9895A00A5C0D9 /* ButtonIcon.swift */,
|
||||
EA985C3F2970939A00F2FF2E /* TileletModel.swift */,
|
||||
EA985C3D2970938F00F2FF2E /* Tilelet.swift */,
|
||||
EA7D81612B2B6E7F00D29F9E /* IconModel.swift */,
|
||||
@ -2911,6 +2917,7 @@
|
||||
D22479942316AE5E003FCCF9 /* NSLayoutConstraintExtension.swift in Sources */,
|
||||
D2B18B94236214AD00A9AEDC /* NavigationController.swift in Sources */,
|
||||
0A9D09222433796500D2E6C0 /* CarouselIndicator.swift in Sources */,
|
||||
EA17584E2BC9895A00A5C0D9 /* ButtonIcon.swift in Sources */,
|
||||
D29E28DA23D21AFA00ACEA85 /* StringAndMoleculeModel.swift in Sources */,
|
||||
D260105D23D0BCD400764D80 /* Stack.swift in Sources */,
|
||||
0A7EF85D23D8A95600B2AAD1 /* TextEntryFieldModel.swift in Sources */,
|
||||
@ -2938,6 +2945,7 @@
|
||||
D22479962316AF6E003FCCF9 /* HeadlineBodyLink.swift in Sources */,
|
||||
8DE5BECD2456F7A200772E76 /* ListTwoColumnDropdownSelectorsModel.swift in Sources */,
|
||||
AA7F47732541AD560015A2C1 /* ListStarRatingModel.swift in Sources */,
|
||||
EA17584C2BC9894800A5C0D9 /* ButtonIconModel.swift in Sources */,
|
||||
AA7F47762541AD6A0015A2C1 /* ListStarRating.swift in Sources */,
|
||||
0A41BA7F23453A6400D4C0BC /* TextEntryField.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.MaximumDigits: 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.Icon.Name: Codable {}
|
||||
extension VDS.Icon.Size: Codable {}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user