Merge branch 'feature/tilet' into 'develop'
updated samples See merge request BPHV_MIPS/vds_ios_sample!20
This commit is contained in:
commit
4435e1541b
@ -126,15 +126,11 @@ extension IconName {
|
|||||||
static let flexibilityRectangles = IconName(name: "flexibility-rectangles")
|
static let flexibilityRectangles = IconName(name: "flexibility-rectangles")
|
||||||
static let flexibility = IconName(name: "flexibility")
|
static let flexibility = IconName(name: "flexibility")
|
||||||
static let gateway = IconName(name: "gateway")
|
static let gateway = IconName(name: "gateway")
|
||||||
static let leftArrow = IconName(name: "left-arrow")
|
|
||||||
static let leftCaret = IconName(name: "left-caret")
|
|
||||||
static let minus = IconName(name: "minus")
|
static let minus = IconName(name: "minus")
|
||||||
static let moreFlexibility = IconName(name: "more-flexibility")
|
static let moreFlexibility = IconName(name: "more-flexibility")
|
||||||
static let noOff = IconName(name: "no-off")
|
static let noOff = IconName(name: "no-off")
|
||||||
static let no = IconName(name: "no")
|
static let no = IconName(name: "no")
|
||||||
static let plus = IconName(name: "plus")
|
static let plus = IconName(name: "plus")
|
||||||
static let rightArrow = IconName(name: "right-arrow")
|
|
||||||
static let rightCaret = IconName(name: "right-caret")
|
|
||||||
static let swipeLeft = IconName(name: "swipe-left")
|
static let swipeLeft = IconName(name: "swipe-left")
|
||||||
static let swipeRight = IconName(name: "swipe-right")
|
static let swipeRight = IconName(name: "swipe-right")
|
||||||
static let swipe = IconName(name: "swipe")
|
static let swipe = IconName(name: "swipe")
|
||||||
@ -248,7 +244,6 @@ extension IconName {
|
|||||||
static let mobilePlusTv = IconName(name: "mobile-plus-tv")
|
static let mobilePlusTv = IconName(name: "mobile-plus-tv")
|
||||||
static let mobileRetargeting = IconName(name: "mobile-retargeting")
|
static let mobileRetargeting = IconName(name: "mobile-retargeting")
|
||||||
static let motionDetector = IconName(name: "motion-detector")
|
static let motionDetector = IconName(name: "motion-detector")
|
||||||
static let multipleDocuments = IconName(name: "multiple-documents")
|
|
||||||
static let music = IconName(name: "music")
|
static let music = IconName(name: "music")
|
||||||
static let nativeVideo = IconName(name: "native-video")
|
static let nativeVideo = IconName(name: "native-video")
|
||||||
static let native = IconName(name: "native")
|
static let native = IconName(name: "native")
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import Foundation
|
|||||||
import UIKit
|
import UIKit
|
||||||
import VDS
|
import VDS
|
||||||
import VDSColorTokens
|
import VDSColorTokens
|
||||||
|
import Combine
|
||||||
|
|
||||||
class TileContainerViewController: BaseViewController {
|
class TileContainerViewController: BaseViewController {
|
||||||
|
|
||||||
@ -34,6 +35,9 @@ class TileContainerViewController: BaseViewController {
|
|||||||
items: TileContainer.ContainerScalingType.allCases)
|
items: TileContainer.ContainerScalingType.allCases)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
var clickableSwitch = Toggle()
|
||||||
|
var clickableCancel: AnyCancellable?
|
||||||
|
|
||||||
var showBackgroundImageSwitch = Toggle()
|
var showBackgroundImageSwitch = Toggle()
|
||||||
var showBorderSwitch = Toggle()
|
var showBorderSwitch = Toggle()
|
||||||
var showDropShadowSwitch = Toggle()
|
var showDropShadowSwitch = Toggle()
|
||||||
@ -46,20 +50,20 @@ class TileContainerViewController: BaseViewController {
|
|||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
addContentTopView(view: .makeWrapper(for: tileContainer))
|
addContentTopView(view: .makeWrapper(for: tileContainer))
|
||||||
|
tileContainer.width = 150
|
||||||
setupForm()
|
setupForm()
|
||||||
setupPicker()
|
setupPicker()
|
||||||
setupModel()
|
setupModel()
|
||||||
}
|
}
|
||||||
|
|
||||||
override func allTextFields() -> [TextField]? { [widthTextField, heightTextField] }
|
override func allTextFields() -> [TextField]? { [widthTextField, heightTextField] }
|
||||||
|
|
||||||
func setupForm(){
|
func setupForm(){
|
||||||
formStackView.addArrangedSubview(Label().with{
|
formStackView.addArrangedSubview(Label().with{
|
||||||
$0.typograpicalStyle = .BoldBodyLarge
|
$0.typograpicalStyle = .BoldBodyLarge
|
||||||
$0.text = "This object does NOT reflect normal \"surface\" changes, all properties are maually set"
|
$0.text = "This object does NOT reflect normal \"surface\" changes, all properties are maually set"
|
||||||
})
|
})
|
||||||
addFormRow(label: "Surface", view: surfacePickerSelectorView)
|
addFormRow(label: "Surface", view: surfacePickerSelectorView)
|
||||||
|
addFormRow(label: "Clickable", view: .makeWrapper(for: clickableSwitch))
|
||||||
addFormRow(label: "Width", view: widthTextField)
|
addFormRow(label: "Width", view: widthTextField)
|
||||||
addFormRow(label: "Height", view: heightTextField)
|
addFormRow(label: "Height", view: heightTextField)
|
||||||
addFormRow(label: "Show Border", view: showBorderSwitch)
|
addFormRow(label: "Show Border", view: showBorderSwitch)
|
||||||
@ -67,9 +71,24 @@ class TileContainerViewController: BaseViewController {
|
|||||||
addFormRow(label: "Background Color", view: backgroundColorPickerSelectorView)
|
addFormRow(label: "Background Color", view: backgroundColorPickerSelectorView)
|
||||||
addFormRow(label: "Padding", view: paddingPickerSelectorView)
|
addFormRow(label: "Padding", view: paddingPickerSelectorView)
|
||||||
addFormRow(label: "Aspect Ratio", view: scalingTypePickerSelectorView)
|
addFormRow(label: "Aspect Ratio", view: scalingTypePickerSelectorView)
|
||||||
addFormRow(label: "Background Image", view: showBackgroundImageSwitch)
|
addFormRow(label: "Background Image", view: .makeWrapper(for: showBackgroundImageSwitch))
|
||||||
addFormRow(label: "Image Fallback Color", view: imageFallbackColorPickerSelectorView)
|
addFormRow(label: "Image Fallback Color", view: imageFallbackColorPickerSelectorView)
|
||||||
|
|
||||||
|
clickableSwitch
|
||||||
|
.publisher(for: .valueChanged)
|
||||||
|
.sink { [weak self] sender in
|
||||||
|
if sender.isOn {
|
||||||
|
self?.clickableCancel = self?.tileContainer
|
||||||
|
.publisher(for: .touchUpInside)
|
||||||
|
.sink(receiveValue: { _ in
|
||||||
|
print("you click on me!")
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
self?.clickableCancel?.cancel()
|
||||||
|
self?.clickableCancel = nil
|
||||||
|
}
|
||||||
|
}.store(in: &subscribers)
|
||||||
|
|
||||||
showBackgroundImageSwitch
|
showBackgroundImageSwitch
|
||||||
.publisher(for: .valueChanged)
|
.publisher(for: .valueChanged)
|
||||||
.sink { [weak self] sender in
|
.sink { [weak self] sender in
|
||||||
@ -117,7 +136,7 @@ class TileContainerViewController: BaseViewController {
|
|||||||
surfacePickerSelectorView.text = tileContainer.surface.rawValue
|
surfacePickerSelectorView.text = tileContainer.surface.rawValue
|
||||||
paddingPickerSelectorView.text = tileContainer.containerPadding.rawValue
|
paddingPickerSelectorView.text = tileContainer.containerPadding.rawValue
|
||||||
scalingTypePickerSelectorView.text = tileContainer.aspectRatio.rawValue
|
scalingTypePickerSelectorView.text = tileContainer.aspectRatio.rawValue
|
||||||
widthTextField.text = "\(tileContainer.width)"
|
widthTextField.text = tileContainer.width != nil ? "\(tileContainer.width!)" : ""
|
||||||
heightTextField.text = tileContainer.height != nil ? "\(tileContainer.height!)" : ""
|
heightTextField.text = tileContainer.height != nil ? "\(tileContainer.height!)" : ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import Foundation
|
|||||||
import UIKit
|
import UIKit
|
||||||
import VDS
|
import VDS
|
||||||
import VDSColorTokens
|
import VDSColorTokens
|
||||||
|
import Combine
|
||||||
|
|
||||||
class TiletViewController: BaseViewController {
|
class TiletViewController: BaseViewController {
|
||||||
|
|
||||||
@ -30,6 +31,9 @@ class TiletViewController: BaseViewController {
|
|||||||
items: [.primary, .secondary])
|
items: [.primary, .secondary])
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
var clickableSwitch = Toggle()
|
||||||
|
var clickableCancel: AnyCancellable?
|
||||||
|
|
||||||
var titleTextField = TextField()
|
var titleTextField = TextField()
|
||||||
var subTitleTextField = TextField()
|
var subTitleTextField = TextField()
|
||||||
var widthTextField = NumericField()
|
var widthTextField = NumericField()
|
||||||
@ -37,7 +41,8 @@ class TiletViewController: BaseViewController {
|
|||||||
var textPercentageTextField = NumericField()
|
var textPercentageTextField = NumericField()
|
||||||
var textWidthTextField = NumericField()
|
var textWidthTextField = NumericField()
|
||||||
|
|
||||||
var showBadgeSwitch = Toggle()
|
var showDescriptionIconSwitch = Toggle()
|
||||||
|
var showDirectionalIconSwitch = Toggle()
|
||||||
var badgeTextField = TextField()
|
var badgeTextField = TextField()
|
||||||
var tilet = Tilet()
|
var tilet = Tilet()
|
||||||
|
|
||||||
@ -54,7 +59,8 @@ class TiletViewController: BaseViewController {
|
|||||||
|
|
||||||
func setupForm(){
|
func setupForm(){
|
||||||
addFormRow(label: "Surface", view: surfacePickerSelectorView)
|
addFormRow(label: "Surface", view: surfacePickerSelectorView)
|
||||||
|
addFormRow(label: "Clickable", view: .makeWrapper(for: clickableSwitch))
|
||||||
|
|
||||||
addFormRow(label: "Title Style", view: titleTextStylePickerSelectorView)
|
addFormRow(label: "Title Style", view: titleTextStylePickerSelectorView)
|
||||||
addFormRow(label: "Other Style", view: otherTextStylePickerSelectorView)
|
addFormRow(label: "Other Style", view: otherTextStylePickerSelectorView)
|
||||||
|
|
||||||
@ -62,11 +68,27 @@ class TiletViewController: BaseViewController {
|
|||||||
addFormRow(label: "Subtitle Color", view: subtitleColorPickerSelectorView)
|
addFormRow(label: "Subtitle Color", view: subtitleColorPickerSelectorView)
|
||||||
addFormRow(label: "Subtitle Text", view: subTitleTextField)
|
addFormRow(label: "Subtitle Text", view: subTitleTextField)
|
||||||
addFormRow(label: "Width", view: widthTextField)
|
addFormRow(label: "Width", view: widthTextField)
|
||||||
addFormRow(label: "Height", view: heightTextField)
|
//addFormRow(label: "Height", view: heightTextField)
|
||||||
addFormRow(label: "Text Width", view: textWidthTextField)
|
addFormRow(label: "Text Width", view: textWidthTextField)
|
||||||
addFormRow(label: "Text Percentage", view: badgeTextField)
|
addFormRow(label: "Text Percentage", view: badgeTextField)
|
||||||
|
|
||||||
addFormRow(label: "Badge Text", view: badgeTextField)
|
addFormRow(label: "Badge Text", view: badgeTextField)
|
||||||
|
addFormRow(label: "Description Icon", view: .makeWrapper(for: showDescriptionIconSwitch))
|
||||||
|
addFormRow(label: "Directional Icon", view: .makeWrapper(for: showDirectionalIconSwitch))
|
||||||
|
|
||||||
|
clickableSwitch
|
||||||
|
.publisher(for: .valueChanged)
|
||||||
|
.sink { [weak self] sender in
|
||||||
|
if sender.isOn {
|
||||||
|
self?.clickableCancel = self?.tilet
|
||||||
|
.publisher(for: .touchUpInside)
|
||||||
|
.sink(receiveValue: { _ in
|
||||||
|
print("you click on me!")
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
self?.clickableCancel?.cancel()
|
||||||
|
self?.clickableCancel = nil
|
||||||
|
}
|
||||||
|
}.store(in: &subscribers)
|
||||||
|
|
||||||
widthTextField
|
widthTextField
|
||||||
.textPublisher
|
.textPublisher
|
||||||
@ -90,7 +112,7 @@ class TiletViewController: BaseViewController {
|
|||||||
.textPublisher
|
.textPublisher
|
||||||
.sink { [weak self] text in
|
.sink { [weak self] text in
|
||||||
guard let self else { return }
|
guard let self else { return }
|
||||||
if let n = NumberFormatter().number(from: text), n.floatValue > 50.0 && n.floatValue <= Float(self.tilet.width) {
|
if let n = NumberFormatter().number(from: text), n.floatValue > 50.0 {
|
||||||
self.tilet.textWidth = CGFloat(truncating: n)
|
self.tilet.textWidth = CGFloat(truncating: n)
|
||||||
self.textPercentageTextField.text = ""
|
self.textPercentageTextField.text = ""
|
||||||
} else {
|
} else {
|
||||||
@ -126,6 +148,29 @@ class TiletViewController: BaseViewController {
|
|||||||
.sink { [weak self] text in
|
.sink { [weak self] text in
|
||||||
self?.setBadgeModel()
|
self?.setBadgeModel()
|
||||||
}.store(in: &subscribers)
|
}.store(in: &subscribers)
|
||||||
|
|
||||||
|
showDescriptionIconSwitch
|
||||||
|
.publisher(for: .valueChanged)
|
||||||
|
.sink { [weak self] sender in
|
||||||
|
if sender.isOn {
|
||||||
|
self?.showDirectionalIconSwitch.isOn = false
|
||||||
|
self?.tilet.descriptiveIconModel = .init(size: .medium, surface: .dark)
|
||||||
|
} else {
|
||||||
|
self?.tilet.descriptiveIconModel = nil
|
||||||
|
}
|
||||||
|
}.store(in: &subscribers)
|
||||||
|
|
||||||
|
showDirectionalIconSwitch
|
||||||
|
.publisher(for: .valueChanged)
|
||||||
|
.sink { [weak self] sender in
|
||||||
|
if sender.isOn {
|
||||||
|
self?.showDescriptionIconSwitch.isOn = false
|
||||||
|
self?.tilet.directionalIconModel = .init(size: .medium, surface: .dark)
|
||||||
|
} else {
|
||||||
|
self?.tilet.directionalIconModel = nil
|
||||||
|
}
|
||||||
|
}.store(in: &subscribers)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func setupModel() {
|
func setupModel() {
|
||||||
@ -133,9 +178,9 @@ class TiletViewController: BaseViewController {
|
|||||||
let subTitleModel = TiletSubTitleModel(text: "Enroll in Auto Pay & paper-free billing to save on your monthly bill.")
|
let subTitleModel = TiletSubTitleModel(text: "Enroll in Auto Pay & paper-free billing to save on your monthly bill.")
|
||||||
|
|
||||||
tilet.surface = .light
|
tilet.surface = .light
|
||||||
tilet.width = 312
|
|
||||||
tilet.titleModel = titleModel
|
tilet.titleModel = titleModel
|
||||||
tilet.subTitleModel = subTitleModel
|
tilet.subTitleModel = subTitleModel
|
||||||
|
|
||||||
//setup UI
|
//setup UI
|
||||||
surfacePickerSelectorView.text = tilet.surface.rawValue
|
surfacePickerSelectorView.text = tilet.surface.rawValue
|
||||||
otherTextStylePickerSelectorView.text = subTitleModel.typographicalStyle.rawValue
|
otherTextStylePickerSelectorView.text = subTitleModel.typographicalStyle.rawValue
|
||||||
@ -143,7 +188,7 @@ class TiletViewController: BaseViewController {
|
|||||||
subtitleColorPickerSelectorView.text = subTitleModel.textColor.rawValue
|
subtitleColorPickerSelectorView.text = subTitleModel.textColor.rawValue
|
||||||
titleTextField.text = titleModel.text
|
titleTextField.text = titleModel.text
|
||||||
subTitleTextField.text = subTitleModel.text
|
subTitleTextField.text = subTitleModel.text
|
||||||
widthTextField.text = "\(tilet.width)"
|
widthTextField.text = tilet.width != nil ? "\(tilet.width!)" : ""
|
||||||
}
|
}
|
||||||
|
|
||||||
//sub models
|
//sub models
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user