Manos Chorianopoulos

CouponsetViewController fixes

...@@ -87,7 +87,8 @@ public class CouponSetItemModel { ...@@ -87,7 +87,8 @@ public class CouponSetItemModel {
87 self.admin_name = dictionary["admin_name"] as? String? ?? "" 87 self.admin_name = dictionary["admin_name"] as? String? ?? ""
88 self.name = dictionary["name"] as? String? ?? "" 88 self.name = dictionary["name"] as? String? ?? ""
89 self.img_preview = dictionary["img_preview"] as? String? ?? "" 89 self.img_preview = dictionary["img_preview"] as? String? ?? ""
90 - self.description = dictionary["description"] as? String? ?? "" 90 + let htmlDescription = dictionary["description"] as? String? ?? ""
91 + self.description = htmlDescription?.htmlToString ?? ""
91 self.short_description = dictionary["short_description"] as? String? ?? "" 92 self.short_description = dictionary["short_description"] as? String? ?? ""
92 self.discount = dictionary["discount"] as? String? ?? "" 93 self.discount = dictionary["discount"] as? String? ?? ""
93 self.sorting = dictionary["sorting"] as? Int? ?? 0 94 self.sorting = dictionary["sorting"] as? Int? ?? 0
...@@ -95,7 +96,8 @@ public class CouponSetItemModel { ...@@ -95,7 +96,8 @@ public class CouponSetItemModel {
95 self.inner_text = htmlText?.htmlToString ?? "" 96 self.inner_text = htmlText?.htmlToString ?? ""
96 self.buyable = dictionary["buyable"] as? Bool? ?? false 97 self.buyable = dictionary["buyable"] as? Bool? ?? false
97 self.visible = dictionary["visible"] as? Bool? ?? false 98 self.visible = dictionary["visible"] as? Bool? ?? false
98 - self.terms = dictionary["terms"] as? String? ?? "" 99 + let htmlTerms = dictionary["terms"] as? String? ?? ""
100 + self.terms = htmlTerms?.htmlToString ?? ""
99 self.merchant_uuid = dictionary["merchant_uuid"] as? String? ?? "" 101 self.merchant_uuid = dictionary["merchant_uuid"] as? String? ?? ""
100 self.discount_type = dictionary["discount_type"] as? String? ?? "" 102 self.discount_type = dictionary["discount_type"] as? String? ?? ""
101 103
......
...@@ -35,40 +35,6 @@ import UIKit ...@@ -35,40 +35,6 @@ import UIKit
35 @IBOutlet weak var expirationLabel: UILabel! 35 @IBOutlet weak var expirationLabel: UILabel!
36 @IBOutlet weak var detailsLabel: UILabel! 36 @IBOutlet weak var detailsLabel: UILabel!
37 37
38 - // MARK: - IBOutlets for Coupon Code Section
39 - @IBOutlet weak var couponCodeContainerView: UIView!
40 - @IBOutlet weak var couponCodeHeaderView: UIView!
41 - @IBOutlet weak var couponCodeContentView: UIView!
42 -
43 - // Header elements
44 - @IBOutlet weak var couponCodeTitleLabel: UILabel!
45 - @IBOutlet weak var couponCodeArrowImage: UIImageView!
46 - @IBOutlet weak var couponCodeButton: UIButton!
47 -
48 - // Content elements (initially hidden)
49 - @IBOutlet weak var couponCodeValueLabel: UILabel!
50 - @IBOutlet weak var copyButtonImage: UIImageView!
51 - @IBOutlet weak var copyButton: UIButton!
52 -
53 - // Constraints for animation
54 - @IBOutlet weak var couponCodeContentHeightConstraint: NSLayoutConstraint!
55 -
56 - // MARK: - IBOutlets for Coupon Code Section
57 - @IBOutlet weak var couponQRContainerView: UIView!
58 - @IBOutlet weak var couponQRHeaderView: UIView!
59 - @IBOutlet weak var couponQRContentView: UIView!
60 -
61 - // Header elements
62 - @IBOutlet weak var couponQRTitleLabel: UILabel!
63 - @IBOutlet weak var couponQRArrowImage: UIImageView!
64 - @IBOutlet weak var couponQRButton: UIButton!
65 -
66 - // Content elements (initially hidden)
67 - @IBOutlet weak var couponQRImage: UIImageView!
68 -
69 - // Constraints for animation
70 - @IBOutlet weak var couponQRContentHeightConstraint: NSLayoutConstraint!
71 -
72 @IBOutlet weak var termsButtonView: UIView! 38 @IBOutlet weak var termsButtonView: UIView!
73 @IBOutlet weak var termsButtonTitleLabel: UILabel! 39 @IBOutlet weak var termsButtonTitleLabel: UILabel!
74 @IBOutlet weak var termsButtonArrowImage: UIImageView! 40 @IBOutlet weak var termsButtonArrowImage: UIImageView!
...@@ -86,6 +52,24 @@ import UIKit ...@@ -86,6 +52,24 @@ import UIKit
86 private var isCouponQRExpanded = false 52 private var isCouponQRExpanded = false
87 private var isTermsExpanded = false 53 private var isTermsExpanded = false
88 54
55 + var postImageURL: String? {
56 + didSet {
57 + if let url = postImageURL {
58 + self.couponImage.image = UIImage() // UIImage(named: "loading")
59 +
60 + UIImage.loadImageUsingCacheWithUrlString(url) { image in
61 + // set the image only when we are still displaying the content for the image we finished downloading
62 + if url == self.postImageURL {
63 + self.couponImage.image = image
64 + }
65 + }
66 + }
67 + else {
68 + self.couponImage.image = nil
69 + }
70 + }
71 + }
72 +
89 public override func viewDidLoad() { 73 public override func viewDidLoad() {
90 super.viewDidLoad() 74 super.viewDidLoad()
91 75
...@@ -101,30 +85,12 @@ import UIKit ...@@ -101,30 +85,12 @@ import UIKit
101 85
102 infoImage.image = UIImage(named: "info", in: Bundle.frameworkResourceBundle, compatibleWith: nil) 86 infoImage.image = UIImage(named: "info", in: Bundle.frameworkResourceBundle, compatibleWith: nil)
103 shareImage.image = UIImage(named: "share", in: Bundle.frameworkResourceBundle, compatibleWith: nil) 87 shareImage.image = UIImage(named: "share", in: Bundle.frameworkResourceBundle, compatibleWith: nil)
104 - couponCodeArrowImage.image = UIImage(named: "arrow_down", in: Bundle.frameworkResourceBundle, compatibleWith: nil)
105 - copyButtonImage.image = UIImage(named: "copy", in: Bundle.frameworkResourceBundle, compatibleWith: nil)
106 - couponQRArrowImage.image = UIImage(named: "arrow_down", in: Bundle.frameworkResourceBundle, compatibleWith: nil)
107 - couponQRImage.image = UIImage(named: "barcode", in: Bundle.frameworkResourceBundle, compatibleWith: nil)
108 termsButtonArrowImage.image = UIImage(named: "arrow_down", in: Bundle.frameworkResourceBundle, compatibleWith: nil) 88 termsButtonArrowImage.image = UIImage(named: "arrow_down", in: Bundle.frameworkResourceBundle, compatibleWith: nil)
109 89
110 infoLabel.font = UIFont(name: "PingLCG-Regular", size: 13) 90 infoLabel.font = UIFont(name: "PingLCG-Regular", size: 13)
111 infoLabel.textColor = UIColor(rgb: 0x020E1C) 91 infoLabel.textColor = UIColor(rgb: 0x020E1C)
112 infoLabel.text = "Περισσότερα" 92 infoLabel.text = "Περισσότερα"
113 93
114 - couponCodeContainerView.backgroundColor = UIColor(rgb: 0xFFFFFF)
115 - couponCodeContainerView.layer.cornerRadius = 8.0
116 - couponCodeContainerView.clipsToBounds = true
117 - couponCodeButton.addTarget(self, action: #selector(toggleCouponCode), for: .touchUpInside)
118 - couponCodeContentHeightConstraint.constant = 0
119 - couponCodeContentView.isHidden = true
120 -
121 - couponQRContainerView.backgroundColor = UIColor(rgb: 0xFFFFFF)
122 - couponQRContainerView.layer.cornerRadius = 8.0
123 - couponQRContainerView.clipsToBounds = true
124 - couponQRButton.addTarget(self, action: #selector(toggleCouponQR), for: .touchUpInside)
125 - couponQRContentHeightConstraint.constant = 0
126 - couponQRContentView.isHidden = true
127 -
128 termsButtonTitleLabel.font = UIFont(name: "PingLCG-Bold", size: 16) 94 termsButtonTitleLabel.font = UIFont(name: "PingLCG-Bold", size: 16)
129 termsButtonTitleLabel.textColor = UIColor(rgb: 0x020E1C) 95 termsButtonTitleLabel.textColor = UIColor(rgb: 0x020E1C)
130 termsButtonTitleLabel.text = "Όροι Χρήσης" 96 termsButtonTitleLabel.text = "Όροι Χρήσης"
...@@ -154,47 +120,39 @@ import UIKit ...@@ -154,47 +120,39 @@ import UIKit
154 } 120 }
155 121
156 private func setupUI(with couponset: CouponSetItemModel) { 122 private func setupUI(with couponset: CouponSetItemModel) {
157 - couponImage.image = UIImage(named: couponset.bannerImage, in: Bundle.frameworkResourceBundle, compatibleWith: nil) 123 +// couponImage.image = UIImage(named: couponset._img_preview, in: Bundle.frameworkResourceBundle, compatibleWith: nil)
158 - favoriteImage.image = UIImage(named: couponset.isFavorite ? "favorite2_filled" : "favorite2_empty", in: Bundle.frameworkResourceBundle, compatibleWith: nil) 124 + self.postImageURL = couponset._img_preview
125 +// favoriteImage.image = UIImage(named: couponset.isFavorite ? "favorite2_filled" : "favorite2_empty", in: Bundle.frameworkResourceBundle, compatibleWith: nil)
126 + // Default to not favorite for coupon sets
127 + favoriteImage.image = UIImage(named: "favorite2_empty", in: Bundle.frameworkResourceBundle, compatibleWith: nil)
159 128
160 titleLabel.font = UIFont(name: "PingLCG-Bold", size: 24) 129 titleLabel.font = UIFont(name: "PingLCG-Bold", size: 24)
161 titleLabel.textColor = UIColor(rgb: 0xF2709D) 130 titleLabel.textColor = UIColor(rgb: 0xF2709D)
162 - titleLabel.text = couponset.title 131 + titleLabel.text = couponset._name
163 132
164 subtitleLabel.font = UIFont(name: "PingLCG-Regular", size: 18) 133 subtitleLabel.font = UIFont(name: "PingLCG-Regular", size: 18)
165 subtitleLabel.textColor = UIColor(rgb: 0x020E1C) 134 subtitleLabel.textColor = UIColor(rgb: 0x020E1C)
166 - subtitleLabel.text = couponset.description 135 + subtitleLabel.text = couponset._short_description
167 136
168 expirationLabel.font = UIFont(name: "PingLCG-Regular", size: 14) 137 expirationLabel.font = UIFont(name: "PingLCG-Regular", size: 14)
169 expirationLabel.textColor = UIColor(rgb: 0x020E1C) 138 expirationLabel.textColor = UIColor(rgb: 0x020E1C)
170 -// expirationLabel.text = ("Η προσφορά ισχύει " + couponset.expirationDate) 139 + expirationLabel.text = ("Η προσφορά ισχύει έως " + couponset.formattedEndDate(format: "dd-MM-yyyy"))
171 - expirationLabel.text = "Η προσφορά ισχύει έως 30-09-2025" 140 +// expirationLabel.text = "Η προσφορά ισχύει έως 30-09-2025"
172 141
173 setupExpandableDetails() 142 setupExpandableDetails()
174 143
175 - couponCodeTitleLabel.font = UIFont(name: "PingLCG-Regular", size: 16)
176 - couponCodeTitleLabel.textColor = UIColor(rgb: 0x000F1E)
177 - couponCodeTitleLabel.text = "Κωδικός Κουπονιού"
178 -
179 - couponCodeValueLabel.font = UIFont(name: "PingLCG-Bold", size: 24)
180 - couponCodeValueLabel.textColor = UIColor(rgb: 0x000F1E)
181 - couponCodeValueLabel.text = "coupons_ab"
182 - copyButton.addTarget(self, action: #selector(copyButtonTapped), for: .touchUpInside)
183 -
184 - couponQRTitleLabel.font = UIFont(name: "PingLCG-Regular", size: 16)
185 - couponQRTitleLabel.textColor = UIColor(rgb: 0x000F1E)
186 - couponQRTitleLabel.text = "QR Κουπονιού"
187 -
188 termsLabel.font = UIFont(name: "PingLCG-Regular", size: 16) 144 termsLabel.font = UIFont(name: "PingLCG-Regular", size: 16)
189 termsLabel.textColor = UIColor(rgb: 0x020E1C) 145 termsLabel.textColor = UIColor(rgb: 0x020E1C)
190 - termsLabel.text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed ex euismod, feugiat justo eu, faucibus urna. Nulla sodales euismod arcu volutpat finibus. Etiam id urna at justo facilisis tempor. Morbi dignissim erat vitae magna sodales dignissim ac in mauris. Mauris tempor convallis tortor, interdum hendrerit turpis eleifend at. Praesent." 146 +// termsLabel.text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed ex euismod, feugiat justo eu, faucibus urna. Nulla sodales euismod arcu volutpat finibus. Etiam id urna at justo facilisis tempor. Morbi dignissim erat vitae magna sodales dignissim ac in mauris. Mauris tempor convallis tortor, interdum hendrerit turpis eleifend at. Praesent."
147 + termsLabel.text = couponset._terms
191 } 148 }
192 149
193 private var fullDetailsText = "" 150 private var fullDetailsText = ""
194 private var shouldTruncaitDetails = false 151 private var shouldTruncaitDetails = false
195 152
196 private func setupExpandableDetails() { 153 private func setupExpandableDetails() {
197 - fullDetailsText = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed ex euismod, feugiat justo eu, faucibus urna. Nulla sodales euismod arcu volutpat finibus. Etiam id urna at justo facilisis tempor. Morbi dignissim erat vitae magna sodales dignissim ac in mauris. Mauris tempor convallis tortor, interdum hendrerit turpis eleifend at. Praesent." 154 +// fullDetailsText = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sed ex euismod, feugiat justo eu, faucibus urna. Nulla sodales euismod arcu volutpat finibus. Etiam id urna at justo facilisis tempor. Morbi dignissim erat vitae magna sodales dignissim ac in mauris. Mauris tempor convallis tortor, interdum hendrerit turpis eleifend at. Praesent."
155 + fullDetailsText = couponset?._description ?? ""
198 156
199 detailsLabel.font = UIFont(name: "PingLCG-Regular", size: 18) 157 detailsLabel.font = UIFont(name: "PingLCG-Regular", size: 18)
200 detailsLabel.textColor = UIColor(rgb: 0x020E1C) 158 detailsLabel.textColor = UIColor(rgb: 0x020E1C)
...@@ -291,80 +249,6 @@ import UIKit ...@@ -291,80 +249,6 @@ import UIKit
291 } 249 }
292 } 250 }
293 251
294 - @objc private func toggleCouponCode() {
295 - isCouponCodeExpanded.toggle()
296 -
297 - // Calculate the target height before animation
298 - let targetHeight: CGFloat = isCouponCodeExpanded ? 80.67 : 0 // Set a fixed height instead of intrinsicContentSize
299 -
300 - // Show content immediately if expanding
301 - if isCouponCodeExpanded {
302 - couponCodeContentView.isHidden = false
303 - couponCodeContentView.alpha = 0
304 - }
305 -
306 - UIView.animate(withDuration: 0.3, animations: {
307 - // // Update arrow image
308 - // self.couponCodeArrowImage.image = UIImage(named: self.isCouponCodeExpanded ? "arrow_up" : "arrow_down", in: MyEmptyClass.resourceBundle(), compatibleWith: nil)
309 -
310 - // Update arrow with rotation
311 - let rotation = self.isCouponCodeExpanded ? CGAffineTransform(rotationAngle: .pi) : .identity
312 - self.couponCodeArrowImage.transform = rotation
313 -
314 - // Update height constraint
315 - self.couponCodeContentHeightConstraint.constant = targetHeight
316 -
317 - // Update alpha for smooth fade
318 - self.couponCodeContentView.alpha = self.isCouponCodeExpanded ? 1.0 : 0.0
319 -
320 - // Force layout update
321 - self.view.layoutIfNeeded()
322 -
323 - }) { _ in
324 - // Hide content after animation completes if collapsing
325 - if !self.isCouponCodeExpanded {
326 - self.couponCodeContentView.isHidden = true
327 - }
328 - }
329 - }
330 -
331 - @objc private func toggleCouponQR() {
332 - isCouponQRExpanded.toggle()
333 -
334 - // Calculate the target height before animation
335 - let targetHeight: CGFloat = isCouponQRExpanded ? 250 : 0 // Set a fixed height for QR code
336 -
337 - // Show content immediately if expanding
338 - if isCouponQRExpanded {
339 - couponQRContentView.isHidden = false
340 - couponQRContentView.alpha = 0
341 - }
342 -
343 - UIView.animate(withDuration: 0.3, animations: {
344 - // Update arrow image
345 - // self.couponQRArrowImage.image = UIImage(named: self.isCouponQRExpanded ? "arrow_up" : "arrow_down", in: MyEmptyClass.resourceBundle(), compatibleWith: nil)
346 -
347 - // Update arrow with rotation
348 - let rotation = self.isCouponQRExpanded ? CGAffineTransform(rotationAngle: .pi) : .identity
349 - self.couponQRArrowImage.transform = rotation
350 -
351 - // Update height constraint
352 - self.couponQRContentHeightConstraint.constant = targetHeight
353 -
354 - // Update alpha for smooth fade
355 - self.couponQRContentView.alpha = self.isCouponQRExpanded ? 1.0 : 0.0
356 -
357 - // Force layout update
358 - self.view.layoutIfNeeded()
359 -
360 - }) { _ in
361 - // Hide content after animation completes if collapsing
362 - if !self.isCouponQRExpanded {
363 - self.couponQRContentView.isHidden = true
364 - }
365 - }
366 - }
367 -
368 @objc private func toggleTerms() { 252 @objc private func toggleTerms() {
369 isTermsExpanded.toggle() 253 isTermsExpanded.toggle()
370 254
...@@ -380,72 +264,4 @@ import UIKit ...@@ -380,72 +264,4 @@ import UIKit
380 } 264 }
381 } 265 }
382 266
383 - @objc private func copyButtonTapped() {
384 - // Get the coupon code text
385 - guard let couponCode = couponCodeValueLabel.text else { return }
386 -
387 - // Copy to clipboard
388 - UIPasteboard.general.string = couponCode
389 -
390 - // Show visual feedback
391 - showCopyFeedback()
392 -
393 - // Optional: Haptic feedback
394 - let impactFeedback = UIImpactFeedbackGenerator(style: .medium)
395 - impactFeedback.impactOccurred()
396 - }
397 -
398 - private func showCopyFeedback() {
399 - // Store original image
400 - // let originalImage = copyButtonImage.image
401 -
402 - // Change to checkmark temporarily
403 - // copyButtonImage.image = UIImage(systemName: "checkmark")
404 - // copyButtonImage.tintColor = UIColor(rgb: 0x09914E) // Green color
405 -
406 - // Show toast message
407 - showToast(message: "Κωδικός αντιγράφηκε!")
408 -
409 - // Reset after 1.5 seconds
410 - // DispatchQueue.main.asyncAfter(deadline: .now() + 1.5) {
411 - // self.copyButtonImage.image = originalImage
412 - // self.copyButtonImage.tintColor = UIColor(rgb: 0xCBCED1) // Original color
413 - // }
414 - }
415 -
416 - private func showToast(message: String) {
417 - // Create toast label
418 - let toast = UILabel()
419 - toast.backgroundColor = UIColor.black.withAlphaComponent(0.8)
420 - toast.textColor = .white
421 - toast.textAlignment = .center
422 - toast.font = UIFont(name: "PingLCG-Regular", size: 14)
423 - toast.text = message
424 - toast.alpha = 0.0
425 - toast.layer.cornerRadius = 8
426 - toast.clipsToBounds = true
427 -
428 - // Add to view
429 - view.addSubview(toast)
430 - toast.translatesAutoresizingMaskIntoConstraints = false
431 - NSLayoutConstraint.activate([
432 - toast.centerXAnchor.constraint(equalTo: view.centerXAnchor),
433 - toast.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor, constant: -100),
434 - toast.widthAnchor.constraint(equalToConstant: 200),
435 - toast.heightAnchor.constraint(equalToConstant: 40)
436 - ])
437 -
438 - // Animate in
439 - UIView.animate(withDuration: 0.3, animations: {
440 - toast.alpha = 1.0
441 - }) { _ in
442 - // Animate out after delay
443 - UIView.animate(withDuration: 0.3, delay: 1.5, animations: {
444 - toast.alpha = 0.0
445 - }) { _ in
446 - toast.removeFromSuperview()
447 - }
448 - }
449 - }
450 -
451 } 267 }
......
...@@ -10,25 +10,7 @@ ...@@ -10,25 +10,7 @@
10 <objects> 10 <objects>
11 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CouponsetViewController" customModule="SwiftWarplyFramework" customModuleProvider="target"> 11 <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="CouponsetViewController" customModule="SwiftWarplyFramework" customModuleProvider="target">
12 <connections> 12 <connections>
13 - <outlet property="copyButton" destination="m3i-vZ-CnB" id="RvZ-a5-lOk"/>
14 - <outlet property="copyButtonImage" destination="gvk-s4-PBD" id="NB5-Cs-XIZ"/>
15 - <outlet property="couponCodeArrowImage" destination="cLt-W0-J7b" id="rhG-F2-CEF"/>
16 - <outlet property="couponCodeButton" destination="Or4-Qv-FhV" id="HNQ-W8-EJt"/>
17 - <outlet property="couponCodeContainerView" destination="29d-hw-9hc" id="bFc-aC-TB8"/>
18 - <outlet property="couponCodeContentHeightConstraint" destination="Pdw-1g-EBR" id="c8h-hL-86W"/>
19 - <outlet property="couponCodeContentView" destination="fPF-zq-mmh" id="TzU-Cp-YiP"/>
20 - <outlet property="couponCodeHeaderView" destination="aiu-GV-BNh" id="S0d-Rf-fJk"/>
21 - <outlet property="couponCodeTitleLabel" destination="QFx-zm-Qpn" id="hwX-hU-Odi"/>
22 - <outlet property="couponCodeValueLabel" destination="fLU-pC-Plj" id="aJj-My-W8v"/>
23 <outlet property="couponImage" destination="50f-Uw-WmD" id="yxn-pQ-nCT"/> 13 <outlet property="couponImage" destination="50f-Uw-WmD" id="yxn-pQ-nCT"/>
24 - <outlet property="couponQRArrowImage" destination="41k-Lv-Ekd" id="t3K-U3-iKg"/>
25 - <outlet property="couponQRButton" destination="GHf-9X-rhc" id="KTg-qi-csy"/>
26 - <outlet property="couponQRContainerView" destination="YkU-9O-TIA" id="ZYg-PQ-pc5"/>
27 - <outlet property="couponQRContentHeightConstraint" destination="WnV-ph-lxQ" id="mFh-ob-BUc"/>
28 - <outlet property="couponQRContentView" destination="g3y-cV-fMg" id="kGI-iD-j8P"/>
29 - <outlet property="couponQRHeaderView" destination="eUm-Wc-G5O" id="byR-SI-PUH"/>
30 - <outlet property="couponQRImage" destination="Zkh-qS-gYz" id="5aD-AM-Qc7"/>
31 - <outlet property="couponQRTitleLabel" destination="yia-c1-g1x" id="Aft-FH-B0b"/>
32 <outlet property="detailsLabel" destination="tOt-gP-Et5" id="H2V-Uq-Dsj"/> 14 <outlet property="detailsLabel" destination="tOt-gP-Et5" id="H2V-Uq-Dsj"/>
33 <outlet property="expirationLabel" destination="PZ8-Go-A85" id="hXE-lo-i0w"/> 15 <outlet property="expirationLabel" destination="PZ8-Go-A85" id="hXE-lo-i0w"/>
34 <outlet property="favoriteImage" destination="kQb-LM-Zaa" id="75J-Ez-RZx"/> 16 <outlet property="favoriteImage" destination="kQb-LM-Zaa" id="75J-Ez-RZx"/>
...@@ -61,7 +43,7 @@ ...@@ -61,7 +43,7 @@
61 <rect key="frame" x="0.0" y="0.0" width="393" height="734"/> 43 <rect key="frame" x="0.0" y="0.0" width="393" height="734"/>
62 <subviews> 44 <subviews>
63 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="mci-HQ-9iu" userLabel="Scroll Content View"> 45 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="mci-HQ-9iu" userLabel="Scroll Content View">
64 - <rect key="frame" x="0.0" y="0.0" width="393" height="1177"/> 46 + <rect key="frame" x="0.0" y="0.0" width="393" height="734"/>
65 <subviews> 47 <subviews>
66 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="50f-Uw-WmD" userLabel="Coupon Image View"> 48 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="50f-Uw-WmD" userLabel="Coupon Image View">
67 <rect key="frame" x="0.0" y="0.0" width="393" height="211"/> 49 <rect key="frame" x="0.0" y="0.0" width="393" height="211"/>
...@@ -97,7 +79,7 @@ ...@@ -97,7 +79,7 @@
97 <constraint firstItem="oln-Zl-Mu1" firstAttribute="leading" secondItem="RK8-R9-SZK" secondAttribute="trailing" constant="4.5" id="uSA-Gk-Fws"/> 79 <constraint firstItem="oln-Zl-Mu1" firstAttribute="leading" secondItem="RK8-R9-SZK" secondAttribute="trailing" constant="4.5" id="uSA-Gk-Fws"/>
98 </constraints> 80 </constraints>
99 </view> 81 </view>
100 - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="aSO-pm-a0W" userLabel="Title Label"> 82 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" ambiguous="YES" text="Label" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="aSO-pm-a0W" userLabel="Title Label">
101 <rect key="frame" x="24" y="234" width="249" height="20.333333333333343"/> 83 <rect key="frame" x="24" y="234" width="249" height="20.333333333333343"/>
102 <fontDescription key="fontDescription" type="system" pointSize="17"/> 84 <fontDescription key="fontDescription" type="system" pointSize="17"/>
103 <nil key="textColor"/> 85 <nil key="textColor"/>
...@@ -119,197 +101,26 @@ ...@@ -119,197 +101,26 @@
119 <constraint firstAttribute="height" constant="40" id="Woz-Er-jU5"/> 101 <constraint firstAttribute="height" constant="40" id="Woz-Er-jU5"/>
120 </constraints> 102 </constraints>
121 </imageView> 103 </imageView>
122 - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="iWC-mi-WKw" userLabel="Subtitle Label"> 104 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" ambiguous="YES" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="iWC-mi-WKw" userLabel="Subtitle Label">
123 - <rect key="frame" x="24" y="254.33333333333334" width="345" height="20.333333333333343"/> 105 + <rect key="frame" x="24" y="254.33333333333337" width="345" height="20.333333333333258"/>
124 <fontDescription key="fontDescription" type="system" pointSize="17"/> 106 <fontDescription key="fontDescription" type="system" pointSize="17"/>
125 <nil key="textColor"/> 107 <nil key="textColor"/>
126 <nil key="highlightedColor"/> 108 <nil key="highlightedColor"/>
127 </label> 109 </label>
128 - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PZ8-Go-A85" userLabel="Expiration Label"> 110 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" ambiguous="YES" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="PZ8-Go-A85" userLabel="Expiration Label">
129 - <rect key="frame" x="24" y="288.66666666666669" width="345" height="20.333333333333314"/> 111 + <rect key="frame" x="24" y="288.66666666666674" width="345" height="20.333333333333314"/>
130 <fontDescription key="fontDescription" type="system" pointSize="17"/> 112 <fontDescription key="fontDescription" type="system" pointSize="17"/>
131 <nil key="textColor"/> 113 <nil key="textColor"/>
132 <nil key="highlightedColor"/> 114 <nil key="highlightedColor"/>
133 </label> 115 </label>
134 - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tOt-gP-Et5" userLabel="Details Label"> 116 + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" ambiguous="YES" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="tOt-gP-Et5" userLabel="Details Label">
135 <rect key="frame" x="24" y="329" width="345" height="20.333333333333314"/> 117 <rect key="frame" x="24" y="329" width="345" height="20.333333333333314"/>
136 <fontDescription key="fontDescription" type="system" pointSize="17"/> 118 <fontDescription key="fontDescription" type="system" pointSize="17"/>
137 <nil key="textColor"/> 119 <nil key="textColor"/>
138 <nil key="highlightedColor"/> 120 <nil key="highlightedColor"/>
139 </label> 121 </label>
140 - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="29d-hw-9hc" userLabel="CouponCodeContainerView">
141 - <rect key="frame" x="24" y="383.33333333333331" width="345" height="134.33333333333331"/>
142 - <subviews>
143 - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="aiu-GV-BNh" userLabel="CouponCodeHeaderView">
144 - <rect key="frame" x="0.0" y="0.0" width="345" height="54.333333333333336"/>
145 - <subviews>
146 - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QFx-zm-Qpn" userLabel="CouponCodeTitleLabel">
147 - <rect key="frame" x="17" y="17.000000000000057" width="277" height="20.333333333333329"/>
148 - <fontDescription key="fontDescription" type="system" pointSize="17"/>
149 - <nil key="textColor"/>
150 - <nil key="highlightedColor"/>
151 - </label>
152 - <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="cLt-W0-J7b" userLabel="CouponCodeArrowImage">
153 - <rect key="frame" x="311" y="20.666666666666686" width="13" height="13"/>
154 - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
155 - <constraints>
156 - <constraint firstAttribute="height" constant="13" id="5n5-5K-6Gl"/>
157 - <constraint firstAttribute="width" constant="13" id="HOb-s9-jHn"/>
158 - </constraints>
159 - </imageView>
160 - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Or4-Qv-FhV" userLabel="CouponCodeButton">
161 - <rect key="frame" x="0.0" y="0.0" width="345" height="54.333333333333336"/>
162 - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
163 - <state key="normal" title="Button"/>
164 - <buttonConfiguration key="configuration" style="plain" title="Button">
165 - <color key="baseForegroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
166 - </buttonConfiguration>
167 - </button>
168 - </subviews>
169 - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
170 - <constraints>
171 - <constraint firstItem="Or4-Qv-FhV" firstAttribute="leading" secondItem="aiu-GV-BNh" secondAttribute="leading" id="3L1-2d-c9l"/>
172 - <constraint firstItem="cLt-W0-J7b" firstAttribute="leading" secondItem="QFx-zm-Qpn" secondAttribute="trailing" constant="17" id="BY0-sX-Ij6"/>
173 - <constraint firstItem="Or4-Qv-FhV" firstAttribute="top" secondItem="aiu-GV-BNh" secondAttribute="top" id="HbR-kc-b0S"/>
174 - <constraint firstAttribute="trailing" secondItem="Or4-Qv-FhV" secondAttribute="trailing" id="PAh-NE-K8G"/>
175 - <constraint firstAttribute="bottom" secondItem="Or4-Qv-FhV" secondAttribute="bottom" id="Xlv-SC-QlR"/>
176 - <constraint firstItem="QFx-zm-Qpn" firstAttribute="top" secondItem="aiu-GV-BNh" secondAttribute="top" constant="17" id="Yjr-Rs-j8t"/>
177 - <constraint firstAttribute="trailing" secondItem="cLt-W0-J7b" secondAttribute="trailing" constant="21" id="cf5-ur-kx8"/>
178 - <constraint firstItem="cLt-W0-J7b" firstAttribute="centerY" secondItem="aiu-GV-BNh" secondAttribute="centerY" id="oah-FX-t8K"/>
179 - <constraint firstAttribute="bottom" secondItem="QFx-zm-Qpn" secondAttribute="bottom" constant="17" id="pIk-PV-GY0"/>
180 - <constraint firstItem="QFx-zm-Qpn" firstAttribute="leading" secondItem="aiu-GV-BNh" secondAttribute="leading" constant="17" id="uMw-90-i4l"/>
181 - </constraints>
182 - </view>
183 - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fPF-zq-mmh" userLabel="CouponCodeContentView">
184 - <rect key="frame" x="0.0" y="54.333333333333314" width="345" height="80"/>
185 - <subviews>
186 - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fLU-pC-Plj" userLabel="CouponCodeValueLabel">
187 - <rect key="frame" x="16.999999999999996" y="26" width="56.666666666666657" height="28"/>
188 - <fontDescription key="fontDescription" type="system" pointSize="24"/>
189 - <nil key="textColor"/>
190 - <nil key="highlightedColor"/>
191 - </label>
192 - <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="gvk-s4-PBD" userLabel="CopyButtonImage">
193 - <rect key="frame" x="84.666666666666671" y="23.666666666666742" width="33" height="33"/>
194 - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
195 - <constraints>
196 - <constraint firstAttribute="width" constant="33" id="ALY-g4-dih"/>
197 - <constraint firstAttribute="height" constant="33" id="PaJ-hI-z6k"/>
198 - </constraints>
199 - </imageView>
200 - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="m3i-vZ-CnB" userLabel="CouponCopyButton">
201 - <rect key="frame" x="0.0" y="0.0" width="117.66666666666667" height="80"/>
202 - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
203 - <state key="normal" title="Button"/>
204 - <buttonConfiguration key="configuration" style="plain" title="Button">
205 - <color key="baseForegroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
206 - </buttonConfiguration>
207 - </button>
208 - </subviews>
209 - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
210 - <constraints>
211 - <constraint firstItem="gvk-s4-PBD" firstAttribute="trailing" secondItem="m3i-vZ-CnB" secondAttribute="trailing" id="1O8-g3-Mle"/>
212 - <constraint firstItem="fLU-pC-Plj" firstAttribute="top" secondItem="fPF-zq-mmh" secondAttribute="top" constant="26" id="CsE-B4-Fy6"/>
213 - <constraint firstItem="fLU-pC-Plj" firstAttribute="leading" secondItem="fPF-zq-mmh" secondAttribute="leading" constant="17" id="DcA-Yo-ZfZ"/>
214 - <constraint firstAttribute="bottom" secondItem="fLU-pC-Plj" secondAttribute="bottom" constant="26" id="J3W-Ep-wZk"/>
215 - <constraint firstAttribute="bottom" secondItem="m3i-vZ-CnB" secondAttribute="bottom" id="LUo-NY-g9R"/>
216 - <constraint firstItem="m3i-vZ-CnB" firstAttribute="leading" secondItem="fPF-zq-mmh" secondAttribute="leading" id="Lek-00-bZQ"/>
217 - <constraint firstAttribute="height" constant="80" id="Pdw-1g-EBR"/>
218 - <constraint firstItem="gvk-s4-PBD" firstAttribute="centerY" secondItem="fPF-zq-mmh" secondAttribute="centerY" id="dSc-Jp-D00"/>
219 - <constraint firstItem="m3i-vZ-CnB" firstAttribute="top" secondItem="fPF-zq-mmh" secondAttribute="top" id="grU-Ao-7aq"/>
220 - <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="gvk-s4-PBD" secondAttribute="trailing" constant="17" id="maW-DE-22h"/>
221 - <constraint firstItem="gvk-s4-PBD" firstAttribute="leading" secondItem="fLU-pC-Plj" secondAttribute="trailing" constant="11" id="viJ-A9-Vq4"/>
222 - </constraints>
223 - </view>
224 - </subviews>
225 - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
226 - <constraints>
227 - <constraint firstItem="fPF-zq-mmh" firstAttribute="top" secondItem="aiu-GV-BNh" secondAttribute="bottom" id="4vc-xd-rhc"/>
228 - <constraint firstItem="aiu-GV-BNh" firstAttribute="leading" secondItem="29d-hw-9hc" secondAttribute="leading" id="78S-aR-g2z"/>
229 - <constraint firstAttribute="trailing" secondItem="aiu-GV-BNh" secondAttribute="trailing" id="TKA-7b-5s3"/>
230 - <constraint firstAttribute="trailing" secondItem="fPF-zq-mmh" secondAttribute="trailing" id="WvZ-7R-yvJ"/>
231 - <constraint firstItem="fPF-zq-mmh" firstAttribute="leading" secondItem="29d-hw-9hc" secondAttribute="leading" id="dUy-qI-4Gi"/>
232 - <constraint firstItem="aiu-GV-BNh" firstAttribute="top" secondItem="29d-hw-9hc" secondAttribute="top" id="sgM-Gh-9Zh"/>
233 - <constraint firstAttribute="bottom" secondItem="fPF-zq-mmh" secondAttribute="bottom" id="tKQ-k1-OV3"/>
234 - </constraints>
235 - </view>
236 - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="YkU-9O-TIA" userLabel="CouponQRContainerView">
237 - <rect key="frame" x="24" y="540.66666666666663" width="345" height="305"/>
238 - <subviews>
239 - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="eUm-Wc-G5O" userLabel="CouponQRHeaderView">
240 - <rect key="frame" x="0.0" y="0.0" width="345" height="55"/>
241 - <subviews>
242 - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="yia-c1-g1x" userLabel="CouponQRTitleLabel">
243 - <rect key="frame" x="17" y="17" width="277" height="21"/>
244 - <fontDescription key="fontDescription" type="system" pointSize="17"/>
245 - <nil key="textColor"/>
246 - <nil key="highlightedColor"/>
247 - </label>
248 - <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="41k-Lv-Ekd" userLabel="CouponQRArrowImage">
249 - <rect key="frame" x="311" y="21" width="13" height="13"/>
250 - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
251 - <constraints>
252 - <constraint firstAttribute="height" constant="13" id="6id-7o-w1B"/>
253 - <constraint firstAttribute="width" constant="13" id="GbL-3z-lLO"/>
254 - </constraints>
255 - </imageView>
256 - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="GHf-9X-rhc" userLabel="CouponQRButton">
257 - <rect key="frame" x="0.0" y="0.0" width="345" height="55"/>
258 - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
259 - <state key="normal" title="Button"/>
260 - <buttonConfiguration key="configuration" style="plain" title="Button">
261 - <color key="baseForegroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
262 - </buttonConfiguration>
263 - </button>
264 - </subviews>
265 - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
266 - <constraints>
267 - <constraint firstItem="yia-c1-g1x" firstAttribute="leading" secondItem="eUm-Wc-G5O" secondAttribute="leading" constant="17" id="0Hm-ir-dIJ"/>
268 - <constraint firstItem="GHf-9X-rhc" firstAttribute="leading" secondItem="eUm-Wc-G5O" secondAttribute="leading" id="43c-Zl-wzz"/>
269 - <constraint firstAttribute="bottom" secondItem="GHf-9X-rhc" secondAttribute="bottom" id="4Cs-jO-J62"/>
270 - <constraint firstItem="41k-Lv-Ekd" firstAttribute="centerY" secondItem="eUm-Wc-G5O" secondAttribute="centerY" id="9z5-4x-NhN"/>
271 - <constraint firstItem="yia-c1-g1x" firstAttribute="top" secondItem="eUm-Wc-G5O" secondAttribute="top" constant="17" id="Goi-Tx-bOj"/>
272 - <constraint firstAttribute="bottom" secondItem="yia-c1-g1x" secondAttribute="bottom" constant="17" id="OT0-Qv-M2p"/>
273 - <constraint firstItem="41k-Lv-Ekd" firstAttribute="leading" secondItem="yia-c1-g1x" secondAttribute="trailing" constant="17" id="cmx-fJ-sSY"/>
274 - <constraint firstItem="GHf-9X-rhc" firstAttribute="top" secondItem="eUm-Wc-G5O" secondAttribute="top" id="ixt-bM-i74"/>
275 - <constraint firstAttribute="trailing" secondItem="GHf-9X-rhc" secondAttribute="trailing" id="kIR-05-5gY"/>
276 - <constraint firstAttribute="trailing" secondItem="41k-Lv-Ekd" secondAttribute="trailing" constant="21" id="nXi-62-ZGj"/>
277 - </constraints>
278 - </view>
279 - <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="g3y-cV-fMg" userLabel="CouponQRContentView">
280 - <rect key="frame" x="0.0" y="55" width="345" height="250"/>
281 - <subviews>
282 - <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Zkh-qS-gYz" userLabel="CouponQRImage">
283 - <rect key="frame" x="72.666666666666686" y="20" width="200" height="200"/>
284 - <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
285 - <constraints>
286 - <constraint firstAttribute="height" constant="200" id="HhN-a9-oG4"/>
287 - <constraint firstAttribute="width" constant="200" id="MAf-tL-aEA"/>
288 - </constraints>
289 - </imageView>
290 - </subviews>
291 - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
292 - <constraints>
293 - <constraint firstItem="Zkh-qS-gYz" firstAttribute="centerX" secondItem="g3y-cV-fMg" secondAttribute="centerX" id="PnZ-55-u2G"/>
294 - <constraint firstAttribute="bottom" secondItem="Zkh-qS-gYz" secondAttribute="bottom" constant="30" id="WHc-Fb-R48"/>
295 - <constraint firstAttribute="height" constant="250" id="WnV-ph-lxQ"/>
296 - <constraint firstItem="Zkh-qS-gYz" firstAttribute="top" secondItem="g3y-cV-fMg" secondAttribute="top" constant="20" id="lUq-E0-XWZ"/>
297 - </constraints>
298 - </view>
299 - </subviews>
300 - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
301 - <constraints>
302 - <constraint firstItem="g3y-cV-fMg" firstAttribute="leading" secondItem="YkU-9O-TIA" secondAttribute="leading" id="BsA-zX-5pc"/>
303 - <constraint firstItem="eUm-Wc-G5O" firstAttribute="top" secondItem="YkU-9O-TIA" secondAttribute="top" id="EKt-pT-pvf"/>
304 - <constraint firstItem="eUm-Wc-G5O" firstAttribute="leading" secondItem="YkU-9O-TIA" secondAttribute="leading" id="QN2-kp-Jes"/>
305 - <constraint firstAttribute="trailing" secondItem="g3y-cV-fMg" secondAttribute="trailing" id="RaR-Mz-V26"/>
306 - <constraint firstItem="g3y-cV-fMg" firstAttribute="top" secondItem="eUm-Wc-G5O" secondAttribute="bottom" id="a87-KC-HwB"/>
307 - <constraint firstAttribute="trailing" secondItem="eUm-Wc-G5O" secondAttribute="trailing" id="ci5-TU-kpQ"/>
308 - <constraint firstAttribute="bottom" secondItem="g3y-cV-fMg" secondAttribute="bottom" id="xVE-F8-Zzh"/>
309 - </constraints>
310 - </view>
311 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="12M-YC-Cox" userLabel="TermsButtonView"> 122 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="12M-YC-Cox" userLabel="TermsButtonView">
312 - <rect key="frame" x="23.999999999999993" y="895.66666666666663" width="123.33333333333331" height="35"/> 123 + <rect key="frame" x="23.999999999999993" y="452.66666666666663" width="123.33333333333331" height="35"/>
313 <subviews> 124 <subviews>
314 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Όροι Χρήσης" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="uSf-AS-iFa" userLabel="TermsButtonTitleLabel"> 125 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Όροι Χρήσης" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="uSf-AS-iFa" userLabel="TermsButtonTitleLabel">
315 <rect key="frame" x="0.0" y="5" width="101.33333333333333" height="25"/> 126 <rect key="frame" x="0.0" y="5" width="101.33333333333333" height="25"/>
...@@ -318,7 +129,7 @@ ...@@ -318,7 +129,7 @@
318 <nil key="highlightedColor"/> 129 <nil key="highlightedColor"/>
319 </label> 130 </label>
320 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="TeG-69-TfN" userLabel="TermsButtonArrowImage"> 131 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="TeG-69-TfN" userLabel="TermsButtonArrowImage">
321 - <rect key="frame" x="109.33333333333334" y="15.000000000000114" width="9" height="5"/> 132 + <rect key="frame" x="109.33333333333334" y="15" width="9" height="5"/>
322 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> 133 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
323 <constraints> 134 <constraints>
324 <constraint firstAttribute="width" constant="9" id="Mvm-l4-0Qv"/> 135 <constraint firstAttribute="width" constant="9" id="Mvm-l4-0Qv"/>
...@@ -349,7 +160,7 @@ ...@@ -349,7 +160,7 @@
349 </constraints> 160 </constraints>
350 </view> 161 </view>
351 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jug-xV-lmv" userLabel="TermsLabel"> 162 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="jug-xV-lmv" userLabel="TermsLabel">
352 - <rect key="frame" x="24" y="940.66666666666674" width="345" height="20.333333333333371"/> 163 + <rect key="frame" x="24" y="497.66666666666663" width="345" height="20.333333333333371"/>
353 <constraints> 164 <constraints>
354 <constraint firstAttribute="height" constant="20.329999999999998" id="9VB-9j-Q79"/> 165 <constraint firstAttribute="height" constant="20.329999999999998" id="9VB-9j-Q79"/>
355 </constraints> 166 </constraints>
...@@ -358,7 +169,7 @@ ...@@ -358,7 +169,7 @@
358 <nil key="highlightedColor"/> 169 <nil key="highlightedColor"/>
359 </label> 170 </label>
360 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bTa-jT-Ufb" userLabel="MapButton"> 171 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bTa-jT-Ufb" userLabel="MapButton">
361 - <rect key="frame" x="24" y="1001" width="345" height="55"/> 172 + <rect key="frame" x="24" y="558" width="345" height="55"/>
362 <constraints> 173 <constraints>
363 <constraint firstAttribute="height" constant="55" id="5AV-zY-O6v"/> 174 <constraint firstAttribute="height" constant="55" id="5AV-zY-O6v"/>
364 </constraints> 175 </constraints>
...@@ -366,7 +177,7 @@ ...@@ -366,7 +177,7 @@
366 <buttonConfiguration key="configuration" style="plain" title="Button"/> 177 <buttonConfiguration key="configuration" style="plain" title="Button"/>
367 </button> 178 </button>
368 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="lU8-hR-MF0" userLabel="WebsiteButton"> 179 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="lU8-hR-MF0" userLabel="WebsiteButton">
369 - <rect key="frame" x="24" y="1076" width="345" height="55"/> 180 + <rect key="frame" x="24" y="633" width="345" height="55"/>
370 <constraints> 181 <constraints>
371 <constraint firstAttribute="height" constant="55" id="aeV-F1-tWk"/> 182 <constraint firstAttribute="height" constant="55" id="aeV-F1-tWk"/>
372 </constraints> 183 </constraints>
...@@ -379,10 +190,9 @@ ...@@ -379,10 +190,9 @@
379 <constraint firstAttribute="trailing" secondItem="PZ8-Go-A85" secondAttribute="trailing" constant="24" id="0BS-5a-p2w"/> 190 <constraint firstAttribute="trailing" secondItem="PZ8-Go-A85" secondAttribute="trailing" constant="24" id="0BS-5a-p2w"/>
380 <constraint firstAttribute="trailing" secondItem="raJ-sJ-NGX" secondAttribute="trailing" constant="16" id="3pn-zS-erd"/> 191 <constraint firstAttribute="trailing" secondItem="raJ-sJ-NGX" secondAttribute="trailing" constant="16" id="3pn-zS-erd"/>
381 <constraint firstAttribute="trailing" secondItem="50f-Uw-WmD" secondAttribute="trailing" id="5vF-D2-mBO"/> 192 <constraint firstAttribute="trailing" secondItem="50f-Uw-WmD" secondAttribute="trailing" id="5vF-D2-mBO"/>
382 - <constraint firstItem="12M-YC-Cox" firstAttribute="top" secondItem="YkU-9O-TIA" secondAttribute="bottom" constant="50" id="6cC-FH-1Xw"/> 193 + <constraint firstItem="12M-YC-Cox" firstAttribute="top" secondItem="tOt-gP-Et5" secondAttribute="bottom" constant="50" id="6cC-FH-1Xw"/>
383 <constraint firstItem="50f-Uw-WmD" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" id="7Rd-U6-d9j"/> 194 <constraint firstItem="50f-Uw-WmD" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" id="7Rd-U6-d9j"/>
384 <constraint firstItem="lU8-hR-MF0" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="9R6-Lj-xSo"/> 195 <constraint firstItem="lU8-hR-MF0" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="9R6-Lj-xSo"/>
385 - <constraint firstAttribute="trailing" secondItem="29d-hw-9hc" secondAttribute="trailing" constant="24" id="A4S-YK-o00"/>
386 <constraint firstItem="aSO-pm-a0W" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="BIn-gA-oSw"/> 196 <constraint firstItem="aSO-pm-a0W" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="BIn-gA-oSw"/>
387 <constraint firstItem="a1t-wH-dMg" firstAttribute="leading" secondItem="kQb-LM-Zaa" secondAttribute="trailing" constant="11" id="DlZ-NN-vE2"/> 197 <constraint firstItem="a1t-wH-dMg" firstAttribute="leading" secondItem="kQb-LM-Zaa" secondAttribute="trailing" constant="11" id="DlZ-NN-vE2"/>
388 <constraint firstItem="12M-YC-Cox" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="Eal-pm-W9t"/> 198 <constraint firstItem="12M-YC-Cox" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="Eal-pm-W9t"/>
...@@ -399,11 +209,9 @@ ...@@ -399,11 +209,9 @@
399 <constraint firstItem="50f-Uw-WmD" firstAttribute="top" secondItem="mci-HQ-9iu" secondAttribute="top" id="a5j-3R-Mwh"/> 209 <constraint firstItem="50f-Uw-WmD" firstAttribute="top" secondItem="mci-HQ-9iu" secondAttribute="top" id="a5j-3R-Mwh"/>
400 <constraint firstAttribute="trailing" secondItem="jug-xV-lmv" secondAttribute="trailing" constant="24" id="b0Q-bb-wh3"/> 210 <constraint firstAttribute="trailing" secondItem="jug-xV-lmv" secondAttribute="trailing" constant="24" id="b0Q-bb-wh3"/>
401 <constraint firstItem="a1t-wH-dMg" firstAttribute="top" secondItem="50f-Uw-WmD" secondAttribute="bottom" constant="17" id="bSw-JI-jDV"/> 211 <constraint firstItem="a1t-wH-dMg" firstAttribute="top" secondItem="50f-Uw-WmD" secondAttribute="bottom" constant="17" id="bSw-JI-jDV"/>
402 - <constraint firstItem="29d-hw-9hc" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="cGC-SD-gUM"/>
403 <constraint firstItem="iWC-mi-WKw" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="dMq-cH-vOX"/> 212 <constraint firstItem="iWC-mi-WKw" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="dMq-cH-vOX"/>
404 <constraint firstItem="raJ-sJ-NGX" firstAttribute="top" secondItem="mci-HQ-9iu" secondAttribute="top" constant="17" id="g7b-Ql-ifv"/> 213 <constraint firstItem="raJ-sJ-NGX" firstAttribute="top" secondItem="mci-HQ-9iu" secondAttribute="top" constant="17" id="g7b-Ql-ifv"/>
405 <constraint firstItem="lU8-hR-MF0" firstAttribute="top" secondItem="bTa-jT-Ufb" secondAttribute="bottom" constant="20" id="hGL-sc-uEw"/> 214 <constraint firstItem="lU8-hR-MF0" firstAttribute="top" secondItem="bTa-jT-Ufb" secondAttribute="bottom" constant="20" id="hGL-sc-uEw"/>
406 - <constraint firstItem="YkU-9O-TIA" firstAttribute="top" secondItem="29d-hw-9hc" secondAttribute="bottom" constant="23" id="igh-S5-wVl"/>
407 <constraint firstItem="aSO-pm-a0W" firstAttribute="top" secondItem="50f-Uw-WmD" secondAttribute="bottom" constant="23" id="jvc-rb-E6b"/> 215 <constraint firstItem="aSO-pm-a0W" firstAttribute="top" secondItem="50f-Uw-WmD" secondAttribute="bottom" constant="23" id="jvc-rb-E6b"/>
408 <constraint firstItem="tOt-gP-Et5" firstAttribute="top" secondItem="PZ8-Go-A85" secondAttribute="bottom" constant="20" id="kQ3-4v-3Jp"/> 216 <constraint firstItem="tOt-gP-Et5" firstAttribute="top" secondItem="PZ8-Go-A85" secondAttribute="bottom" constant="20" id="kQ3-4v-3Jp"/>
409 <constraint firstItem="jug-xV-lmv" firstAttribute="top" secondItem="12M-YC-Cox" secondAttribute="bottom" constant="9.9999999999998863" id="kSx-qT-pPa"/> 217 <constraint firstItem="jug-xV-lmv" firstAttribute="top" secondItem="12M-YC-Cox" secondAttribute="bottom" constant="9.9999999999998863" id="kSx-qT-pPa"/>
...@@ -411,9 +219,6 @@ ...@@ -411,9 +219,6 @@
411 <constraint firstAttribute="trailing" secondItem="lU8-hR-MF0" secondAttribute="trailing" constant="24" id="lEm-My-Oi9"/> 219 <constraint firstAttribute="trailing" secondItem="lU8-hR-MF0" secondAttribute="trailing" constant="24" id="lEm-My-Oi9"/>
412 <constraint firstItem="bTa-jT-Ufb" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="nR2-Py-LTi"/> 220 <constraint firstItem="bTa-jT-Ufb" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="nR2-Py-LTi"/>
413 <constraint firstItem="jug-xV-lmv" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="oUa-cz-J7N"/> 221 <constraint firstItem="jug-xV-lmv" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="oUa-cz-J7N"/>
414 - <constraint firstAttribute="trailing" secondItem="YkU-9O-TIA" secondAttribute="trailing" constant="24" id="qPb-Zk-uAy"/>
415 - <constraint firstItem="YkU-9O-TIA" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="qaA-KW-dD7"/>
416 - <constraint firstItem="29d-hw-9hc" firstAttribute="top" secondItem="tOt-gP-Et5" secondAttribute="bottom" constant="34" id="xG9-Pc-sWu"/>
417 <constraint firstItem="tOt-gP-Et5" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="xz5-C4-0GD"/> 222 <constraint firstItem="tOt-gP-Et5" firstAttribute="leading" secondItem="mci-HQ-9iu" secondAttribute="leading" constant="24" id="xz5-C4-0GD"/>
418 </constraints> 223 </constraints>
419 </view> 224 </view>
......
...@@ -568,7 +568,7 @@ import UIKit ...@@ -568,7 +568,7 @@ import UIKit
568 568
569 private func openCouponsetViewController(with couponSet: CouponSetItemModel) { 569 private func openCouponsetViewController(with couponSet: CouponSetItemModel) {
570 let vc = SwiftWarplyFramework.CouponsetViewController(nibName: "CouponsetViewController", bundle: Bundle.frameworkBundle) 570 let vc = SwiftWarplyFramework.CouponsetViewController(nibName: "CouponsetViewController", bundle: Bundle.frameworkBundle)
571 - vc.couponSet = couponSet 571 + vc.couponset = couponSet
572 572
573 self.navigationController?.pushViewController(vc, animated: true) 573 self.navigationController?.pushViewController(vc, animated: true)
574 } 574 }
......