Manos Chorianopoulos

add mfy category sections

...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
7 <key>Pods-SwiftWarplyFramework.xcscheme_^#shared#^_</key> 7 <key>Pods-SwiftWarplyFramework.xcscheme_^#shared#^_</key>
8 <dict> 8 <dict>
9 <key>orderHint</key> 9 <key>orderHint</key>
10 - <integer>0</integer> 10 + <integer>1</integer>
11 </dict> 11 </dict>
12 </dict> 12 </dict>
13 </dict> 13 </dict>
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
13 1E108A9528A3F9280008B8E7 /* pf_square_sans_pro_bold_italic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 1E108A9028A3F9280008B8E7 /* pf_square_sans_pro_bold_italic.ttf */; }; 13 1E108A9528A3F9280008B8E7 /* pf_square_sans_pro_bold_italic.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 1E108A9028A3F9280008B8E7 /* pf_square_sans_pro_bold_italic.ttf */; };
14 1E108A9628A3F9280008B8E7 /* pf_square_sans_pro_bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 1E108A9128A3F9280008B8E7 /* pf_square_sans_pro_bold.ttf */; }; 14 1E108A9628A3F9280008B8E7 /* pf_square_sans_pro_bold.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 1E108A9128A3F9280008B8E7 /* pf_square_sans_pro_bold.ttf */; };
15 1E2966EA2837A21D00F83FAC /* RSBarcodes_Swift in Frameworks */ = {isa = PBXBuildFile; productRef = 1E2966E92837A21D00F83FAC /* RSBarcodes_Swift */; }; 15 1E2966EA2837A21D00F83FAC /* RSBarcodes_Swift in Frameworks */ = {isa = PBXBuildFile; productRef = 1E2966E92837A21D00F83FAC /* RSBarcodes_Swift */; };
16 + 1E4410B128F5855000859F92 /* CampaignCategory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E4410B028F5855000859F92 /* CampaignCategory.swift */; };
16 1E74838D28378AF40042A589 /* CouponBarcodeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E74838C28378AF40042A589 /* CouponBarcodeViewController.swift */; }; 17 1E74838D28378AF40042A589 /* CouponBarcodeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E74838C28378AF40042A589 /* CouponBarcodeViewController.swift */; };
17 1E87A9EF28C2021200C79F90 /* ContextualViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E87A9EE28C2021200C79F90 /* ContextualViewController.swift */; }; 18 1E87A9EF28C2021200C79F90 /* ContextualViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E87A9EE28C2021200C79F90 /* ContextualViewController.swift */; };
18 1EA1AF0A2835346A008998AA /* CouponsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EA1AF092835346A008998AA /* CouponsTableViewCell.swift */; }; 19 1EA1AF0A2835346A008998AA /* CouponsTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EA1AF092835346A008998AA /* CouponsTableViewCell.swift */; };
...@@ -174,6 +175,7 @@ ...@@ -174,6 +175,7 @@
174 1E108A9028A3F9280008B8E7 /* pf_square_sans_pro_bold_italic.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = pf_square_sans_pro_bold_italic.ttf; sourceTree = "<group>"; }; 175 1E108A9028A3F9280008B8E7 /* pf_square_sans_pro_bold_italic.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = pf_square_sans_pro_bold_italic.ttf; sourceTree = "<group>"; };
175 1E108A9128A3F9280008B8E7 /* pf_square_sans_pro_bold.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = pf_square_sans_pro_bold.ttf; sourceTree = "<group>"; }; 176 1E108A9128A3F9280008B8E7 /* pf_square_sans_pro_bold.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = pf_square_sans_pro_bold.ttf; sourceTree = "<group>"; };
176 1E108A9728A3FA9B0008B8E7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; }; 177 1E108A9728A3FA9B0008B8E7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
178 + 1E4410B028F5855000859F92 /* CampaignCategory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CampaignCategory.swift; sourceTree = "<group>"; };
177 1E74838C28378AF40042A589 /* CouponBarcodeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponBarcodeViewController.swift; sourceTree = "<group>"; }; 179 1E74838C28378AF40042A589 /* CouponBarcodeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponBarcodeViewController.swift; sourceTree = "<group>"; };
178 1E87A9EE28C2021200C79F90 /* ContextualViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContextualViewController.swift; sourceTree = "<group>"; }; 180 1E87A9EE28C2021200C79F90 /* ContextualViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContextualViewController.swift; sourceTree = "<group>"; };
179 1EA1AF092835346A008998AA /* CouponsTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponsTableViewCell.swift; sourceTree = "<group>"; }; 181 1EA1AF092835346A008998AA /* CouponsTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CouponsTableViewCell.swift; sourceTree = "<group>"; };
...@@ -462,6 +464,7 @@ ...@@ -462,6 +464,7 @@
462 E6A77A35282BB4CB0045BBA8 /* MakeItAPresentViewController.swift */, 464 E6A77A35282BB4CB0045BBA8 /* MakeItAPresentViewController.swift */,
463 E6A7785A282933E40045BBA8 /* Helpers */, 465 E6A7785A282933E40045BBA8 /* Helpers */,
464 E6A77861282933E50045BBA8 /* Main.storyboard */, 466 E6A77861282933E50045BBA8 /* Main.storyboard */,
467 + 1E4410B028F5855000859F92 /* CampaignCategory.swift */,
465 1EDCDFAB28DB29E8002ED8F0 /* AnalysisMoreViewCell.swift */, 468 1EDCDFAB28DB29E8002ED8F0 /* AnalysisMoreViewCell.swift */,
466 1E87A9EE28C2021200C79F90 /* ContextualViewController.swift */, 469 1E87A9EE28C2021200C79F90 /* ContextualViewController.swift */,
467 1EB236AA28816B680063777A /* ShareViewController.swift */, 470 1EB236AA28816B680063777A /* ShareViewController.swift */,
...@@ -943,6 +946,7 @@ ...@@ -943,6 +946,7 @@
943 E6A7794A282933E70045BBA8 /* FMDatabaseAdditions.m in Sources */, 946 E6A7794A282933E70045BBA8 /* FMDatabaseAdditions.m in Sources */,
944 E6A77903282933E60045BBA8 /* WLAPSItem.m in Sources */, 947 E6A77903282933E60045BBA8 /* WLAPSItem.m in Sources */,
945 1ECA079128D9E3BA00D2BDE0 /* CSMButton.swift in Sources */, 948 1ECA079128D9E3BA00D2BDE0 /* CSMButton.swift in Sources */,
949 + 1E4410B128F5855000859F92 /* CampaignCategory.swift in Sources */,
946 E6A7790B282933E60045BBA8 /* WLPushManager.m in Sources */, 950 E6A7790B282933E60045BBA8 /* WLPushManager.m in Sources */,
947 A079366E2885D07700064122 /* AnalysisChildViewController.swift in Sources */, 951 A079366E2885D07700064122 /* AnalysisChildViewController.swift in Sources */,
948 E6A77950282933E70045BBA8 /* FMResultSet.m in Sources */, 952 E6A77950282933E70045BBA8 /* FMResultSet.m in Sources */,
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
7 <key>SwiftWarplyFramework.xcscheme_^#shared#^_</key> 7 <key>SwiftWarplyFramework.xcscheme_^#shared#^_</key>
8 <dict> 8 <dict>
9 <key>orderHint</key> 9 <key>orderHint</key>
10 - <integer>1</integer> 10 + <integer>0</integer>
11 </dict> 11 </dict>
12 </dict> 12 </dict>
13 </dict> 13 </dict>
......
1 +//
2 +// CampaignCategory.swift
3 +// SwiftWarplyFramework
4 +//
5 +// Created by Manos Chorianopoulos on 11/10/22.
6 +//
7 +
8 +import Foundation
9 +
10 +public class CampaignCategory: Codable {
11 +
12 + // attributes
13 + public var name: String?
14 + public var index: Int
15 + public var items: Array<swiftApi.CampaignItemModel>
16 +
17 + // initialization
18 + public init(_ name: String) {
19 + self.name = name == "ΑΛΛΕΣ" ? name : String(name.dropFirst())
20 + self.index = Int(name.prefix(1)) ?? 0
21 + self.items = [swiftApi.CampaignItemModel]()
22 + }
23 +
24 + public init(_ name: String, index: Int) {
25 + self.name = name == "ΑΛΛΕΣ" ? name : String(name.dropFirst())
26 + self.index = index
27 + self.items = [swiftApi.CampaignItemModel]()
28 + }
29 +}
30 +
31 +enum CampaignCategoryFactory {
32 + static func create(withTitle title: String) -> CampaignCategory {
33 +
34 + var index = 100
35 + let indexChr:Character = title[title.index(title.startIndex, offsetBy: 1)]
36 + if indexChr.isNumber {
37 + index = indexChr.wholeNumberValue!
38 + }
39 +
40 + return CampaignCategory(title, index: index)
41 + }
42 +}
43 +
...@@ -13,6 +13,8 @@ import SwiftEventBus ...@@ -13,6 +13,8 @@ import SwiftEventBus
13 @IBOutlet weak var mainView: UIView! 13 @IBOutlet weak var mainView: UIView!
14 @IBOutlet weak var tableView: UITableView! 14 @IBOutlet weak var tableView: UITableView!
15 15
16 + var categories: Array<CampaignCategory> = [CampaignCategory]()
17 +
16 public var campaigns:Array<swiftApi.CampaignItemModel> = [] 18 public var campaigns:Array<swiftApi.CampaignItemModel> = []
17 public var loyaltyList:Array<swiftApi.CampaignItemModel> = swiftApi().mergeMFYCCMSLoyaltyCampaigns(campaigns: swiftApi().getCCMSLoyaltyCampaigns()) 19 public var loyaltyList:Array<swiftApi.CampaignItemModel> = swiftApi().mergeMFYCCMSLoyaltyCampaigns(campaigns: swiftApi().getCCMSLoyaltyCampaigns())
18 public var ccmsList:Array<swiftApi.LoyaltyContextualOfferModel> = swiftApi().getCCMSLoyaltyCampaigns() 20 public var ccmsList:Array<swiftApi.LoyaltyContextualOfferModel> = swiftApi().getCCMSLoyaltyCampaigns()
...@@ -73,9 +75,35 @@ import SwiftEventBus ...@@ -73,9 +75,35 @@ import SwiftEventBus
73 func refreshData() -> Void { 75 func refreshData() -> Void {
74 self.loyaltyList = swiftApi().mergeMFYCCMSLoyaltyCampaigns(campaigns: swiftApi().getCCMSLoyaltyCampaigns()) 76 self.loyaltyList = swiftApi().mergeMFYCCMSLoyaltyCampaigns(campaigns: swiftApi().getCCMSLoyaltyCampaigns())
75 self.ccmsList = swiftApi().getCCMSLoyaltyCampaigns() 77 self.ccmsList = swiftApi().getCCMSLoyaltyCampaigns()
76 - var tempCampaigns:Array<swiftApi.CampaignItemModel> = loyaltyList 78 + // var tempCampaigns:Array<swiftApi.CampaignItemModel> = loyaltyList
79 +
80 + var newData = [CampaignCategory]()
81 +
82 + // parse campaigns
83 + var campaignsDict = [String:CampaignCategory]()
84 + for item in loyaltyList {
85 + guard let title = item._category_title else {
86 + continue
87 + }
88 +
89 + if (title.isEmpty) {
90 + continue
91 + }
77 92
93 + var category = campaignsDict[title]
94 + if (category == nil) {
95 + category = CampaignCategory(title)
96 + campaignsDict[title] = category
97 + newData.append(category!)
98 + }
99 +
100 + category?.items.append(item)
101 + }
102 + newData = newData.sorted(by: { $0.index < $1.index })
103 +
104 + // parse ccms
78 if (self.ccmsList.count > 0) { 105 if (self.ccmsList.count > 0) {
106 + let category = CampaignCategory("ΑΛΛΕΣ")
79 for ccmsItem in self.ccmsList { 107 for ccmsItem in self.ccmsList {
80 if (((ccmsItem._loyaltyCampaignId == "") || (ccmsItem._loyaltyCampaignId == "NA")) && (ccmsItem._zone == "COSMOTE_APP_MORE4U")) { 108 if (((ccmsItem._loyaltyCampaignId == "") || (ccmsItem._loyaltyCampaignId == "NA")) && (ccmsItem._zone == "COSMOTE_APP_MORE4U")) {
81 let newCampaign = swiftApi.CampaignItemModel() 109 let newCampaign = swiftApi.CampaignItemModel()
...@@ -84,12 +112,15 @@ import SwiftEventBus ...@@ -84,12 +112,15 @@ import SwiftEventBus
84 newCampaign._subtitle = ccmsItem._subtitle 112 newCampaign._subtitle = ccmsItem._subtitle
85 newCampaign._message = ccmsItem._message 113 newCampaign._message = ccmsItem._message
86 newCampaign._ccms = ccmsItem 114 newCampaign._ccms = ccmsItem
87 - tempCampaigns.append(newCampaign) 115 + // tempCampaigns.append(newCampaign)
116 + category.items.append(newCampaign)
88 } 117 }
89 } 118 }
119 + newData.append(category)
90 } 120 }
91 121
92 - self.campaigns = tempCampaigns 122 + // self.campaigns = tempCampaigns
123 + self.categories = newData
93 self.tableView.reloadData() 124 self.tableView.reloadData()
94 } 125 }
95 126
...@@ -132,11 +163,13 @@ import SwiftEventBus ...@@ -132,11 +163,13 @@ import SwiftEventBus
132 extension MFYViewController: UITableViewDelegate, UITableViewDataSource{ 163 extension MFYViewController: UITableViewDelegate, UITableViewDataSource{
133 164
134 public func numberOfSections(in tableView: UITableView) -> Int { 165 public func numberOfSections(in tableView: UITableView) -> Int {
135 - return 1 166 + // return 1
167 + return self.categories.count
136 } 168 }
137 169
138 public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 170 public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
139 - return self.campaigns.count 171 + // return self.campaigns.count
172 + return self.categories[section].items.count
140 } 173 }
141 174
142 public func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { 175 public func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
...@@ -144,16 +177,43 @@ extension MFYViewController: UITableViewDelegate, UITableViewDataSource{ ...@@ -144,16 +177,43 @@ extension MFYViewController: UITableViewDelegate, UITableViewDataSource{
144 // return UITableViewAutomaticDimension 177 // return UITableViewAutomaticDimension
145 } 178 }
146 179
180 + public func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
181 + let view = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.width, height: 43))
182 + view.backgroundColor = .clear
183 +
184 + let titleLabel = UILabel(frame: CGRect(x: 20, y: 5, width: view.frame.width - 20, height: 43))
185 + titleLabel.font = UIFont(name: "PFSquareSansPro-Bold", size: 21)
186 + titleLabel.textColor = UIColor(rgb: 0xF4F4F4)
187 + titleLabel.text = categories[section].name
188 +
189 + view.addSubview(titleLabel)
190 + return view
191 + }
192 +
193 + public func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
194 + return 43
195 + }
196 +
197 + public func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
198 + return CGFloat.leastNormalMagnitude
199 + }
200 +
201 + public func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
202 + return nil
203 + }
204 +
147 public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 205 public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
148 let cell = tableView.dequeueReusableCell(withIdentifier: "MFYInboxTableViewCellId", for: indexPath) as! MFYInboxTableViewCell 206 let cell = tableView.dequeueReusableCell(withIdentifier: "MFYInboxTableViewCellId", for: indexPath) as! MFYInboxTableViewCell
149 207
150 - if (campaigns[indexPath.row]._type != nil && campaigns[indexPath.row]._type == "telco") { 208 + let campaign = categories[indexPath.section].items[indexPath.row]
209 +
210 + if (campaign._type != nil && campaign._type == "telco") {
151 let ccmsCampaigns = swiftApi().getCCMSLoyaltyCampaigns() 211 let ccmsCampaigns = swiftApi().getCCMSLoyaltyCampaigns()
152 - let loyaltyCampaignIdExists = ccmsCampaigns.contains { $0._loyaltyCampaignId == campaigns[indexPath.row].session_uuid } 212 + let loyaltyCampaignIdExists = ccmsCampaigns.contains { $0._loyaltyCampaignId == campaign.session_uuid }
153 213
154 if (loyaltyCampaignIdExists == true) { 214 if (loyaltyCampaignIdExists == true) {
155 for item in ccmsCampaigns { 215 for item in ccmsCampaigns {
156 - if (item._loyaltyCampaignId == campaigns[indexPath.row].session_uuid) { 216 + if (item._loyaltyCampaignId == campaign.session_uuid) {
157 cell.configureCell(ccms: item) 217 cell.configureCell(ccms: item)
158 break; 218 break;
159 } 219 }
...@@ -161,37 +221,39 @@ extension MFYViewController: UITableViewDelegate, UITableViewDataSource{ ...@@ -161,37 +221,39 @@ extension MFYViewController: UITableViewDelegate, UITableViewDataSource{
161 } 221 }
162 222
163 } else { 223 } else {
164 - cell.configureCell(campaign: campaigns[indexPath.row]) 224 + cell.configureCell(campaign: campaign)
165 } 225 }
166 226
167 return cell 227 return cell
168 } 228 }
169 229
170 public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 230 public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
171 - if (campaigns[indexPath.row]._ccms != nil) { 231 + let campaign = categories[indexPath.section].items[indexPath.row]
232 +
233 + if (campaign._ccms != nil) {
172 234
173 let firebaseEvent = swiftApi.LoyaltySDKFirebaseEventModel() 235 let firebaseEvent = swiftApi.LoyaltySDKFirebaseEventModel()
174 firebaseEvent._eventName = "loyalty_sdk_offer_selected" 236 firebaseEvent._eventName = "loyalty_sdk_offer_selected"
175 - firebaseEvent.setParameter = ("name", (campaigns[indexPath.row]._ccms?._title ?? "")) 237 + firebaseEvent.setParameter = ("name", (campaign._ccms?._title ?? ""))
176 firebaseEvent.setParameter = ("type", "gift") 238 firebaseEvent.setParameter = ("type", "gift")
177 SwiftEventBus.post("firebase", sender: firebaseEvent) 239 SwiftEventBus.post("firebase", sender: firebaseEvent)
178 240
179 let storyboard = UIStoryboard(name: "Main", bundle: Bundle(for: MyEmptyClass.self)) 241 let storyboard = UIStoryboard(name: "Main", bundle: Bundle(for: MyEmptyClass.self))
180 let vc = storyboard.instantiateViewController(withIdentifier: "ContextualViewController") as! SwiftWarplyFramework.ContextualViewController 242 let vc = storyboard.instantiateViewController(withIdentifier: "ContextualViewController") as! SwiftWarplyFramework.ContextualViewController
181 - vc.ccms = campaigns[indexPath.row]._ccms 243 + vc.ccms = campaign._ccms
182 self.navigationController?.pushViewController(vc, animated: true) 244 self.navigationController?.pushViewController(vc, animated: true)
183 245
184 - if let sessionUuid = campaigns[indexPath.row].session_uuid { 246 + if let sessionUuid = campaign.session_uuid {
185 getSingleCampaignAsyncRequest(sessionUuid: sessionUuid) 247 getSingleCampaignAsyncRequest(sessionUuid: sessionUuid)
186 } 248 }
187 249
188 - } else if (campaigns[indexPath.row]._type != nil && campaigns[indexPath.row]._type == "telco") { 250 + } else if (campaign._type != nil && campaign._type == "telco") {
189 let ccmsCampaigns = swiftApi().getCCMSLoyaltyCampaigns() 251 let ccmsCampaigns = swiftApi().getCCMSLoyaltyCampaigns()
190 - let loyaltyCampaignIdExists = ccmsCampaigns.contains { $0._loyaltyCampaignId == campaigns[indexPath.row].session_uuid } 252 + let loyaltyCampaignIdExists = ccmsCampaigns.contains { $0._loyaltyCampaignId == campaign.session_uuid }
191 253
192 if (loyaltyCampaignIdExists == true) { 254 if (loyaltyCampaignIdExists == true) {
193 for item in ccmsCampaigns { 255 for item in ccmsCampaigns {
194 - if (item._loyaltyCampaignId == campaigns[indexPath.row].session_uuid) { 256 + if (item._loyaltyCampaignId == campaign.session_uuid) {
195 257
196 let firebaseEvent = swiftApi.LoyaltySDKFirebaseEventModel() 258 let firebaseEvent = swiftApi.LoyaltySDKFirebaseEventModel()
197 firebaseEvent._eventName = "loyalty_sdk_offer_selected" 259 firebaseEvent._eventName = "loyalty_sdk_offer_selected"
...@@ -202,18 +264,18 @@ extension MFYViewController: UITableViewDelegate, UITableViewDataSource{ ...@@ -202,18 +264,18 @@ extension MFYViewController: UITableViewDelegate, UITableViewDataSource{
202 let storyboard = UIStoryboard(name: "Main", bundle: Bundle(for: MyEmptyClass.self)) 264 let storyboard = UIStoryboard(name: "Main", bundle: Bundle(for: MyEmptyClass.self))
203 let vc = storyboard.instantiateViewController(withIdentifier: "TelcoViewController") as! SwiftWarplyFramework.TelcoViewController 265 let vc = storyboard.instantiateViewController(withIdentifier: "TelcoViewController") as! SwiftWarplyFramework.TelcoViewController
204 vc.ccms = item 266 vc.ccms = item
205 - vc.campaign = campaigns[indexPath.row] 267 + vc.campaign = campaign
206 self.navigationController?.pushViewController(vc, animated: true) 268 self.navigationController?.pushViewController(vc, animated: true)
207 269
208 - if let sessionUuid = campaigns[indexPath.row].session_uuid { 270 + if let sessionUuid = campaign.session_uuid {
209 getSingleCampaignAsyncRequest(sessionUuid: sessionUuid) 271 getSingleCampaignAsyncRequest(sessionUuid: sessionUuid)
210 } 272 }
211 } 273 }
212 } 274 }
213 } 275 }
214 276
215 - } else if (campaigns[indexPath.row]._campaign_type == "coupon") { 277 + } else if (campaign._campaign_type == "coupon") {
216 - let couponsetUuid = campaigns[indexPath.row]._couponset 278 + let couponsetUuid = campaign._couponset
217 279
218 if (couponsetUuid != "") { 280 if (couponsetUuid != "") {
219 let couponsetsList = swiftApi().getCouponSetList() 281 let couponsetsList = swiftApi().getCouponSetList()
...@@ -230,14 +292,14 @@ extension MFYViewController: UITableViewDelegate, UITableViewDataSource{ ...@@ -230,14 +292,14 @@ extension MFYViewController: UITableViewDelegate, UITableViewDataSource{
230 let storyboard = UIStoryboard(name: "Main", bundle: Bundle(for: MyEmptyClass.self)) 292 let storyboard = UIStoryboard(name: "Main", bundle: Bundle(for: MyEmptyClass.self))
231 let vc = storyboard.instantiateViewController(withIdentifier: "CouponViewController") as! SwiftWarplyFramework.CouponViewController 293 let vc = storyboard.instantiateViewController(withIdentifier: "CouponViewController") as! SwiftWarplyFramework.CouponViewController
232 vc.couponset = item 294 vc.couponset = item
233 - vc.campaign = campaigns[indexPath.row] 295 + vc.campaign = campaign
234 296
235 let ccmsCampaigns = swiftApi().getCCMSLoyaltyCampaigns() 297 let ccmsCampaigns = swiftApi().getCCMSLoyaltyCampaigns()
236 - let loyaltyCampaignIdExists = ccmsCampaigns.contains { $0._loyaltyCampaignId == campaigns[indexPath.row].session_uuid } 298 + let loyaltyCampaignIdExists = ccmsCampaigns.contains { $0._loyaltyCampaignId == campaign.session_uuid }
237 299
238 if (loyaltyCampaignIdExists == true) { 300 if (loyaltyCampaignIdExists == true) {
239 for item in ccmsCampaigns { 301 for item in ccmsCampaigns {
240 - if (item._loyaltyCampaignId == campaigns[indexPath.row].session_uuid) { 302 + if (item._loyaltyCampaignId == campaign.session_uuid) {
241 vc.ccms = item 303 vc.ccms = item
242 break; 304 break;
243 } 305 }
...@@ -246,7 +308,7 @@ extension MFYViewController: UITableViewDelegate, UITableViewDataSource{ ...@@ -246,7 +308,7 @@ extension MFYViewController: UITableViewDelegate, UITableViewDataSource{
246 308
247 self.navigationController?.pushViewController(vc, animated: true) 309 self.navigationController?.pushViewController(vc, animated: true)
248 310
249 - if let sessionUuid = campaigns[indexPath.row].session_uuid { 311 + if let sessionUuid = campaign.session_uuid {
250 getSingleCampaignAsyncRequest(sessionUuid: sessionUuid) 312 getSingleCampaignAsyncRequest(sessionUuid: sessionUuid)
251 } 313 }
252 314
...@@ -258,7 +320,7 @@ extension MFYViewController: UITableViewDelegate, UITableViewDataSource{ ...@@ -258,7 +320,7 @@ extension MFYViewController: UITableViewDelegate, UITableViewDataSource{
258 } else { 320 } else {
259 // let storyboard = UIStoryboard(name: "Main", bundle: Bundle(for: MyEmptyClass.self)) 321 // let storyboard = UIStoryboard(name: "Main", bundle: Bundle(for: MyEmptyClass.self))
260 // let vc = storyboard.instantiateViewController(withIdentifier: "CampaignViewController") as! SwiftWarplyFramework.CampaignViewController 322 // let vc = storyboard.instantiateViewController(withIdentifier: "CampaignViewController") as! SwiftWarplyFramework.CampaignViewController
261 - // let url = swiftApi().constructCampaignUrl(campaigns[indexPath.row]) 323 + // let url = swiftApi().constructCampaignUrl(campaign)
262 // print("CampaignUrl url onclick: " + url) 324 // print("CampaignUrl url onclick: " + url)
263 // vc.campaignUrl = url 325 // vc.campaignUrl = url
264 // self.navigationController?.pushViewController(vc, animated: true) 326 // self.navigationController?.pushViewController(vc, animated: true)
...@@ -267,42 +329,42 @@ extension MFYViewController: UITableViewDelegate, UITableViewDataSource{ ...@@ -267,42 +329,42 @@ extension MFYViewController: UITableViewDelegate, UITableViewDataSource{
267 let vc = storyboard.instantiateViewController(withIdentifier: "CampaignViewController") as! SwiftWarplyFramework.CampaignViewController 329 let vc = storyboard.instantiateViewController(withIdentifier: "CampaignViewController") as! SwiftWarplyFramework.CampaignViewController
268 var url = "" 330 var url = ""
269 var params = "" 331 var params = ""
270 - let isCcmsOffer = (campaigns[indexPath.row].ccms_offer != nil) && (campaigns[indexPath.row].ccms_offer != "") && (campaigns[indexPath.row].ccms_offer == "true") 332 + let isCcmsOffer = (campaign.ccms_offer != nil) && (campaign.ccms_offer != "") && (campaign.ccms_offer == "true")
271 333
272 if (isCcmsOffer) { 334 if (isCcmsOffer) {
273 let ccmsCampaigns = swiftApi().getCCMSLoyaltyCampaigns() 335 let ccmsCampaigns = swiftApi().getCCMSLoyaltyCampaigns()
274 336
275 - let loyaltyCampaignIdExists = ccmsCampaigns.contains { $0._loyaltyCampaignId == campaigns[indexPath.row].session_uuid } 337 + let loyaltyCampaignIdExists = ccmsCampaigns.contains { $0._loyaltyCampaignId == campaign.session_uuid }
276 338
277 if (loyaltyCampaignIdExists == true) { 339 if (loyaltyCampaignIdExists == true) {
278 var ccmsCampaignFound:swiftApi.LoyaltyContextualOfferModel = swiftApi.LoyaltyContextualOfferModel() 340 var ccmsCampaignFound:swiftApi.LoyaltyContextualOfferModel = swiftApi.LoyaltyContextualOfferModel()
279 for item in ccmsCampaigns { 341 for item in ccmsCampaigns {
280 - if (item._loyaltyCampaignId == campaigns[indexPath.row].session_uuid) { 342 + if (item._loyaltyCampaignId == campaign.session_uuid) {
281 ccmsCampaignFound = item 343 ccmsCampaignFound = item
282 } 344 }
283 } 345 }
284 - url = swiftApi().constructCcmsUrl(campaigns[indexPath.row], ccmsCampaignFound) 346 + url = swiftApi().constructCcmsUrl(campaign, ccmsCampaignFound)
285 - params = swiftApi().constructCcmsParams(campaigns[indexPath.row], ccmsCampaignFound) 347 + params = swiftApi().constructCcmsParams(campaign, ccmsCampaignFound)
286 348
287 } else { 349 } else {
288 - url = swiftApi().constructCampaignUrl(campaigns[indexPath.row]) 350 + url = swiftApi().constructCampaignUrl(campaign)
289 - params = swiftApi().constructCampaignParams(campaigns[indexPath.row]) 351 + params = swiftApi().constructCampaignParams(campaign)
290 352
291 } 353 }
292 354
293 let encoder = JSONEncoder() 355 let encoder = JSONEncoder()
294 encoder.outputFormatting = .prettyPrinted 356 encoder.outputFormatting = .prettyPrinted
295 - let data = try! encoder.encode(campaigns[indexPath.row]) 357 + let data = try! encoder.encode(campaign)
296 358
297 print("CCMS_CLICK " + String(data: data, encoding: .utf8)!) 359 print("CCMS_CLICK " + String(data: data, encoding: .utf8)!)
298 360
299 } else { 361 } else {
300 - url = swiftApi().constructCampaignUrl(campaigns[indexPath.row]) 362 + url = swiftApi().constructCampaignUrl(campaign)
301 - params = swiftApi().constructCampaignParams(campaigns[indexPath.row]) 363 + params = swiftApi().constructCampaignParams(campaign)
302 364
303 let encoder = JSONEncoder() 365 let encoder = JSONEncoder()
304 encoder.outputFormatting = .prettyPrinted 366 encoder.outputFormatting = .prettyPrinted
305 - let data = try! encoder.encode(campaigns[indexPath.row]) 367 + let data = try! encoder.encode(campaign)
306 368
307 print("GFY_CLICK " + String(data: data, encoding: .utf8)!) 369 print("GFY_CLICK " + String(data: data, encoding: .utf8)!)
308 } 370 }
...@@ -311,7 +373,7 @@ extension MFYViewController: UITableViewDelegate, UITableViewDataSource{ ...@@ -311,7 +373,7 @@ extension MFYViewController: UITableViewDelegate, UITableViewDataSource{
311 vc.params = params 373 vc.params = params
312 self.navigationController?.pushViewController(vc, animated: true) 374 self.navigationController?.pushViewController(vc, animated: true)
313 375
314 - if let sessionUuid = campaigns[indexPath.row].session_uuid { 376 + if let sessionUuid = campaign.session_uuid {
315 getSingleCampaignAsyncRequest(sessionUuid: sessionUuid) 377 getSingleCampaignAsyncRequest(sessionUuid: sessionUuid)
316 } 378 }
317 } 379 }
......
...@@ -46,46 +46,46 @@ ...@@ -46,46 +46,46 @@
46 <color key="sectionIndexBackgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> 46 <color key="sectionIndexBackgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
47 <prototypes> 47 <prototypes>
48 <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="CouponsTableViewCellId" id="Ivk-7o-eVp" customClass="CouponsTableViewCell" customModule="SwiftWarplyFramework" customModuleProvider="target"> 48 <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="CouponsTableViewCellId" id="Ivk-7o-eVp" customClass="CouponsTableViewCell" customModule="SwiftWarplyFramework" customModuleProvider="target">
49 - <rect key="frame" x="0.0" y="44.5" width="414" height="116.5"/> 49 + <rect key="frame" x="0.0" y="44.5" width="414" height="105"/>
50 <autoresizingMask key="autoresizingMask"/> 50 <autoresizingMask key="autoresizingMask"/>
51 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="Ivk-7o-eVp" id="OpF-ry-8Pc"> 51 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="Ivk-7o-eVp" id="OpF-ry-8Pc">
52 - <rect key="frame" x="0.0" y="0.0" width="414" height="116.5"/> 52 + <rect key="frame" x="0.0" y="0.0" width="414" height="105"/>
53 <autoresizingMask key="autoresizingMask"/> 53 <autoresizingMask key="autoresizingMask"/>
54 <subviews> 54 <subviews>
55 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="JaN-ia-6ul"> 55 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="JaN-ia-6ul">
56 - <rect key="frame" x="10" y="0.0" width="394" height="116.5"/> 56 + <rect key="frame" x="10" y="0.0" width="394" height="105"/>
57 <subviews> 57 <subviews>
58 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="coupon_bg" translatesAutoresizingMaskIntoConstraints="NO" id="2YB-QL-me8"> 58 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="coupon_bg" translatesAutoresizingMaskIntoConstraints="NO" id="2YB-QL-me8">
59 - <rect key="frame" x="0.0" y="0.0" width="394" height="116.5"/> 59 + <rect key="frame" x="0.0" y="0.0" width="394" height="105"/>
60 </imageView> 60 </imageView>
61 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="qgV-LI-5lL"> 61 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="qgV-LI-5lL">
62 - <rect key="frame" x="20" y="10" width="79" height="96.5"/> 62 + <rect key="frame" x="20" y="10" width="79" height="85"/>
63 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> 63 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
64 </imageView> 64 </imageView>
65 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kWi-pp-keF"> 65 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kWi-pp-keF">
66 - <rect key="frame" x="104" y="5" width="10" height="106.5"/> 66 + <rect key="frame" x="104" y="5" width="10" height="95"/>
67 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> 67 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
68 <constraints> 68 <constraints>
69 <constraint firstAttribute="width" constant="10" id="UQ1-xk-Qqc"/> 69 <constraint firstAttribute="width" constant="10" id="UQ1-xk-Qqc"/>
70 </constraints> 70 </constraints>
71 </view> 71 </view>
72 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gWw-Mr-bn2"> 72 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gWw-Mr-bn2">
73 - <rect key="frame" x="119" y="15" width="255" height="20"/> 73 + <rect key="frame" x="119" y="15" width="255" height="17"/>
74 <fontDescription key="fontDescription" name="PFSquareSansPro-Medium" family="PF Square Sans Pro" pointSize="17"/> 74 <fontDescription key="fontDescription" name="PFSquareSansPro-Medium" family="PF Square Sans Pro" pointSize="17"/>
75 <color key="textColor" red="0.22745098039215686" green="0.32156862745098036" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/> 75 <color key="textColor" red="0.22745098039215686" green="0.32156862745098036" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
76 <nil key="highlightedColor"/> 76 <nil key="highlightedColor"/>
77 </label> 77 </label>
78 <stackView opaque="NO" contentMode="scaleToFill" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="URC-i5-9Gw"> 78 <stackView opaque="NO" contentMode="scaleToFill" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="URC-i5-9Gw">
79 - <rect key="frame" x="119" y="40" width="255" height="36.5"/> 79 + <rect key="frame" x="119" y="37" width="255" height="31"/>
80 <subviews> 80 <subviews>
81 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ssk-9S-HMD"> 81 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ssk-9S-HMD">
82 - <rect key="frame" x="0.0" y="0.0" width="127.5" height="36.5"/> 82 + <rect key="frame" x="0.0" y="0.0" width="127.5" height="31"/>
83 <fontDescription key="fontDescription" name="PFSquareSansPro-Bold" family="PF Square Sans Pro" pointSize="31"/> 83 <fontDescription key="fontDescription" name="PFSquareSansPro-Bold" family="PF Square Sans Pro" pointSize="31"/>
84 <color key="textColor" red="0.22745098039215686" green="0.32156862745098036" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/> 84 <color key="textColor" red="0.22745098039215686" green="0.32156862745098036" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
85 <nil key="highlightedColor"/> 85 <nil key="highlightedColor"/>
86 </label> 86 </label>
87 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hWa-mr-cXD"> 87 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hWa-mr-cXD">
88 - <rect key="frame" x="132.5" y="0.0" width="122.5" height="36.5"/> 88 + <rect key="frame" x="132.5" y="0.0" width="122.5" height="31"/>
89 <fontDescription key="fontDescription" name="PFSquareSansPro-Medium" family="PF Square Sans Pro" pointSize="12"/> 89 <fontDescription key="fontDescription" name="PFSquareSansPro-Medium" family="PF Square Sans Pro" pointSize="12"/>
90 <color key="textColor" red="0.38039215686274508" green="0.44313725490196076" blue="0.50588235294117645" alpha="1" colorSpace="calibratedRGB"/> 90 <color key="textColor" red="0.38039215686274508" green="0.44313725490196076" blue="0.50588235294117645" alpha="1" colorSpace="calibratedRGB"/>
91 <nil key="highlightedColor"/> 91 <nil key="highlightedColor"/>
...@@ -97,7 +97,7 @@ ...@@ -97,7 +97,7 @@
97 </constraints> 97 </constraints>
98 </stackView> 98 </stackView>
99 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Kdt-I2-GtS"> 99 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Kdt-I2-GtS">
100 - <rect key="frame" x="119" y="87.5" width="255" height="14"/> 100 + <rect key="frame" x="119" y="78" width="255" height="12"/>
101 <fontDescription key="fontDescription" name="PFSquareSansPro-Medium" family="PF Square Sans Pro" pointSize="12"/> 101 <fontDescription key="fontDescription" name="PFSquareSansPro-Medium" family="PF Square Sans Pro" pointSize="12"/>
102 <color key="textColor" red="0.38039215686274508" green="0.44313725490196076" blue="0.50588235294117645" alpha="1" colorSpace="calibratedRGB"/> 102 <color key="textColor" red="0.38039215686274508" green="0.44313725490196076" blue="0.50588235294117645" alpha="1" colorSpace="calibratedRGB"/>
103 <nil key="highlightedColor"/> 103 <nil key="highlightedColor"/>
...@@ -214,13 +214,13 @@ ...@@ -214,13 +214,13 @@
214 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="NSn-MS-EVn" userLabel="Main View"> 214 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="NSn-MS-EVn" userLabel="Main View">
215 <rect key="frame" x="0.0" y="44" width="414" height="852"/> 215 <rect key="frame" x="0.0" y="44" width="414" height="852"/>
216 <subviews> 216 <subviews>
217 - <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="-1" estimatedSectionHeaderHeight="-1" sectionFooterHeight="-1" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="A8b-3b-5xc"> 217 + <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="none" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="18" estimatedSectionHeaderHeight="-1" sectionFooterHeight="18" estimatedSectionFooterHeight="-1" translatesAutoresizingMaskIntoConstraints="NO" id="A8b-3b-5xc">
218 <rect key="frame" x="0.0" y="0.0" width="414" height="852"/> 218 <rect key="frame" x="0.0" y="0.0" width="414" height="852"/>
219 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> 219 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
220 <color key="sectionIndexBackgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> 220 <color key="sectionIndexBackgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
221 <prototypes> 221 <prototypes>
222 <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="MFYInboxTableViewCellId" id="TRe-Ck-sF8" customClass="MFYInboxTableViewCell" customModule="SwiftWarplyFramework" customModuleProvider="target"> 222 <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="MFYInboxTableViewCellId" id="TRe-Ck-sF8" customClass="MFYInboxTableViewCell" customModule="SwiftWarplyFramework" customModuleProvider="target">
223 - <rect key="frame" x="0.0" y="44.5" width="414" height="118.5"/> 223 + <rect key="frame" x="0.0" y="49.5" width="414" height="118.5"/>
224 <autoresizingMask key="autoresizingMask"/> 224 <autoresizingMask key="autoresizingMask"/>
225 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="TRe-Ck-sF8" id="1NS-DA-C6q"> 225 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="TRe-Ck-sF8" id="1NS-DA-C6q">
226 <rect key="frame" x="0.0" y="0.0" width="414" height="118.5"/> 226 <rect key="frame" x="0.0" y="0.0" width="414" height="118.5"/>
...@@ -755,10 +755,10 @@ ...@@ -755,10 +755,10 @@
755 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> 755 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
756 <subviews> 756 <subviews>
757 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Et1-y7-npI" userLabel="HeaderView"> 757 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Et1-y7-npI" userLabel="HeaderView">
758 - <rect key="frame" x="0.0" y="0.0" width="414" height="181"/> 758 + <rect key="frame" x="0.0" y="0.0" width="414" height="175"/>
759 <subviews> 759 <subviews>
760 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_background_circle" translatesAutoresizingMaskIntoConstraints="NO" id="wP5-YG-vSP"> 760 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ic_background_circle" translatesAutoresizingMaskIntoConstraints="NO" id="wP5-YG-vSP">
761 - <rect key="frame" x="0.0" y="0.0" width="414" height="181"/> 761 + <rect key="frame" x="0.0" y="0.0" width="414" height="175"/>
762 </imageView> 762 </imageView>
763 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="wJv-NF-rMf"> 763 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="wJv-NF-rMf">
764 <rect key="frame" x="174.5" y="30" width="65" height="65"/> 764 <rect key="frame" x="174.5" y="30" width="65" height="65"/>
...@@ -768,13 +768,13 @@ ...@@ -768,13 +768,13 @@
768 </constraints> 768 </constraints>
769 </imageView> 769 </imageView>
770 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Γιώργος Γεωργίου" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1XZ-NB-F8P"> 770 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Γιώργος Γεωργίου" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1XZ-NB-F8P">
771 - <rect key="frame" x="20" y="105" width="374" height="19"/> 771 + <rect key="frame" x="20" y="105" width="374" height="16"/>
772 <fontDescription key="fontDescription" name="PFSquareSansPro-Regular" family="PF Square Sans Pro" pointSize="16"/> 772 <fontDescription key="fontDescription" name="PFSquareSansPro-Regular" family="PF Square Sans Pro" pointSize="16"/>
773 <color key="textColor" red="0.25490196079999999" green="0.33333333329999998" blue="0.3921568627" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/> 773 <color key="textColor" red="0.25490196079999999" green="0.33333333329999998" blue="0.3921568627" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
774 <nil key="highlightedColor"/> 774 <nil key="highlightedColor"/>
775 </label> 775 </label>
776 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="tailTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="UNL-Oh-sPV"> 776 <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="tailTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="UNL-Oh-sPV">
777 - <rect key="frame" x="175.5" y="134" width="63" height="27"/> 777 + <rect key="frame" x="176.5" y="131" width="61" height="24"/>
778 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> 778 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
779 <fontDescription key="fontDescription" name="PFSquareSansPro-Medium" family="PF Square Sans Pro" pointSize="14"/> 779 <fontDescription key="fontDescription" name="PFSquareSansPro-Medium" family="PF Square Sans Pro" pointSize="14"/>
780 <inset key="contentEdgeInsets" minX="10" minY="5" maxX="10" maxY="5"/> 780 <inset key="contentEdgeInsets" minX="10" minY="5" maxX="10" maxY="5"/>
...@@ -806,7 +806,7 @@ ...@@ -806,7 +806,7 @@
806 </constraints> 806 </constraints>
807 </view> 807 </view>
808 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hdz-dS-6jm"> 808 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="hdz-dS-6jm">
809 - <rect key="frame" x="45" y="211" width="359" height="75"/> 809 + <rect key="frame" x="45" y="205" width="359" height="75"/>
810 <subviews> 810 <subviews>
811 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="EpZ-Qo-xby"> 811 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="EpZ-Qo-xby">
812 <rect key="frame" x="-35" y="2.5" width="70" height="70"/> 812 <rect key="frame" x="-35" y="2.5" width="70" height="70"/>
...@@ -815,7 +815,7 @@ ...@@ -815,7 +815,7 @@
815 <rect key="frame" x="0.0" y="0.0" width="70" height="70"/> 815 <rect key="frame" x="0.0" y="0.0" width="70" height="70"/>
816 </imageView> 816 </imageView>
817 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="18,00€" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AIw-YV-t1D"> 817 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="18,00€" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="AIw-YV-t1D">
818 - <rect key="frame" x="5" y="40" width="60" height="13"/> 818 + <rect key="frame" x="5" y="42" width="60" height="11"/>
819 <fontDescription key="fontDescription" name="PFSquareSansPro-ExtraBlack" family="PF Square Sans Pro" pointSize="11"/> 819 <fontDescription key="fontDescription" name="PFSquareSansPro-ExtraBlack" family="PF Square Sans Pro" pointSize="11"/>
820 <color key="textColor" red="0.25490196079999999" green="0.33333333329999998" blue="0.3921568627" alpha="1" colorSpace="calibratedRGB"/> 820 <color key="textColor" red="0.25490196079999999" green="0.33333333329999998" blue="0.3921568627" alpha="1" colorSpace="calibratedRGB"/>
821 <nil key="highlightedColor"/> 821 <nil key="highlightedColor"/>
...@@ -835,7 +835,7 @@ ...@@ -835,7 +835,7 @@
835 </constraints> 835 </constraints>
836 </view> 836 </view>
837 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Μέχρι τώρα έχεις κερδίσει 18,00€ με το DEALS for YOU!" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="h7B-UX-3wG"> 837 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Μέχρι τώρα έχεις κερδίσει 18,00€ με το DEALS for YOU!" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="h7B-UX-3wG">
838 - <rect key="frame" x="45" y="17.5" width="304" height="40"/> 838 + <rect key="frame" x="45" y="20.5" width="304" height="34"/>
839 <fontDescription key="fontDescription" name="PFSquareSansPro-Regular" family="PF Square Sans Pro" pointSize="17"/> 839 <fontDescription key="fontDescription" name="PFSquareSansPro-Regular" family="PF Square Sans Pro" pointSize="17"/>
840 <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> 840 <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
841 <nil key="highlightedColor"/> 841 <nil key="highlightedColor"/>
...@@ -867,7 +867,7 @@ ...@@ -867,7 +867,7 @@
867 </constraints> 867 </constraints>
868 </view> 868 </view>
869 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Fef-hi-2VL"> 869 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Fef-hi-2VL">
870 - <rect key="frame" x="45" y="316" width="359" height="75"/> 870 + <rect key="frame" x="45" y="310" width="359" height="75"/>
871 <subviews> 871 <subviews>
872 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LLM-FB-EYF"> 872 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="LLM-FB-EYF">
873 <rect key="frame" x="-35" y="2.5" width="70" height="70"/> 873 <rect key="frame" x="-35" y="2.5" width="70" height="70"/>
...@@ -876,7 +876,7 @@ ...@@ -876,7 +876,7 @@
876 <rect key="frame" x="0.0" y="0.0" width="70" height="70"/> 876 <rect key="frame" x="0.0" y="0.0" width="70" height="70"/>
877 </imageView> 877 </imageView>
878 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="20,00€" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cbA-fm-1uO"> 878 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="20,00€" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cbA-fm-1uO">
879 - <rect key="frame" x="5" y="40" width="60" height="13"/> 879 + <rect key="frame" x="5" y="42" width="60" height="11"/>
880 <fontDescription key="fontDescription" name="PFSquareSansPro-ExtraBlack" family="PF Square Sans Pro" pointSize="11"/> 880 <fontDescription key="fontDescription" name="PFSquareSansPro-ExtraBlack" family="PF Square Sans Pro" pointSize="11"/>
881 <color key="textColor" red="0.25490196079999999" green="0.33333333329999998" blue="0.3921568627" alpha="1" colorSpace="calibratedRGB"/> 881 <color key="textColor" red="0.25490196079999999" green="0.33333333329999998" blue="0.3921568627" alpha="1" colorSpace="calibratedRGB"/>
882 <nil key="highlightedColor"/> 882 <nil key="highlightedColor"/>
...@@ -896,7 +896,7 @@ ...@@ -896,7 +896,7 @@
896 </constraints> 896 </constraints>
897 </view> 897 </view>
898 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Μέχρι τώρα έχεις κερδίσει 20,00€ σε προσφορές από 3 κουπόνια!" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WdW-lP-g1v"> 898 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Μέχρι τώρα έχεις κερδίσει 20,00€ σε προσφορές από 3 κουπόνια!" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="WdW-lP-g1v">
899 - <rect key="frame" x="45" y="17.5" width="304" height="40"/> 899 + <rect key="frame" x="45" y="20.5" width="304" height="34"/>
900 <fontDescription key="fontDescription" name="PFSquareSansPro-Regular" family="PF Square Sans Pro" pointSize="17"/> 900 <fontDescription key="fontDescription" name="PFSquareSansPro-Regular" family="PF Square Sans Pro" pointSize="17"/>
901 <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> 901 <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
902 <nil key="highlightedColor"/> 902 <nil key="highlightedColor"/>
...@@ -928,31 +928,31 @@ ...@@ -928,31 +928,31 @@
928 </constraints> 928 </constraints>
929 </view> 929 </view>
930 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="dfy_logo_white" translatesAutoresizingMaskIntoConstraints="NO" id="gdf-s4-2CF"> 930 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="dfy_logo_white" translatesAutoresizingMaskIntoConstraints="NO" id="gdf-s4-2CF">
931 - <rect key="frame" x="20" y="431" width="124" height="40"/> 931 + <rect key="frame" x="20" y="425" width="124" height="40"/>
932 <constraints> 932 <constraints>
933 <constraint firstAttribute="height" constant="40" id="Ch9-8X-FNJ"/> 933 <constraint firstAttribute="height" constant="40" id="Ch9-8X-FNJ"/>
934 </constraints> 934 </constraints>
935 </imageView> 935 </imageView>
936 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zFT-By-XHL"> 936 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zFT-By-XHL">
937 - <rect key="frame" x="10" y="481" width="394" height="100"/> 937 + <rect key="frame" x="10" y="475" width="394" height="100"/>
938 <subviews> 938 <subviews>
939 <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="2" translatesAutoresizingMaskIntoConstraints="NO" id="MCY-xv-vpg"> 939 <stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="2" translatesAutoresizingMaskIntoConstraints="NO" id="MCY-xv-vpg">
940 - <rect key="frame" x="20" y="18.5" width="254" height="63"/> 940 + <rect key="frame" x="20" y="23" width="254" height="54"/>
941 <subviews> 941 <subviews>
942 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Ενεργός κωδικός:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ucC-u4-AQL"> 942 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Ενεργός κωδικός:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ucC-u4-AQL">
943 - <rect key="frame" x="0.0" y="0.0" width="254" height="22.5"/> 943 + <rect key="frame" x="0.0" y="0.0" width="254" height="19"/>
944 <fontDescription key="fontDescription" name="PFSquareSansPro-Medium" family="PF Square Sans Pro" pointSize="19"/> 944 <fontDescription key="fontDescription" name="PFSquareSansPro-Medium" family="PF Square Sans Pro" pointSize="19"/>
945 <color key="textColor" red="0.23529411759999999" green="0.32549019610000002" blue="0.39607843139999999" alpha="1" colorSpace="calibratedRGB"/> 945 <color key="textColor" red="0.23529411759999999" green="0.32549019610000002" blue="0.39607843139999999" alpha="1" colorSpace="calibratedRGB"/>
946 <nil key="highlightedColor"/> 946 <nil key="highlightedColor"/>
947 </label> 947 </label>
948 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="961544809" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qBe-Jw-QUx"> 948 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="961544809" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qBe-Jw-QUx">
949 - <rect key="frame" x="0.0" y="24.5" width="254" height="22.5"/> 949 + <rect key="frame" x="0.0" y="21" width="254" height="19"/>
950 <fontDescription key="fontDescription" name="PFSquareSansPro-Bold" family="PF Square Sans Pro" pointSize="19"/> 950 <fontDescription key="fontDescription" name="PFSquareSansPro-Bold" family="PF Square Sans Pro" pointSize="19"/>
951 <color key="textColor" red="0.23529411759999999" green="0.32549019610000002" blue="0.39607843139999999" alpha="1" colorSpace="calibratedRGB"/> 951 <color key="textColor" red="0.23529411759999999" green="0.32549019610000002" blue="0.39607843139999999" alpha="1" colorSpace="calibratedRGB"/>
952 <nil key="highlightedColor"/> 952 <nil key="highlightedColor"/>
953 </label> 953 </label>
954 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Λήγει σε 4 ημέρες" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qL0-3b-eqA"> 954 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Λήγει σε 4 ημέρες" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qL0-3b-eqA">
955 - <rect key="frame" x="0.0" y="49" width="254" height="14"/> 955 + <rect key="frame" x="0.0" y="42" width="254" height="12"/>
956 <fontDescription key="fontDescription" name="PFSquareSansPro-Regular" family="PF Square Sans Pro" pointSize="12"/> 956 <fontDescription key="fontDescription" name="PFSquareSansPro-Regular" family="PF Square Sans Pro" pointSize="12"/>
957 <color key="textColor" red="0.2274509804" green="0.32156862749999998" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/> 957 <color key="textColor" red="0.2274509804" green="0.32156862749999998" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
958 <nil key="highlightedColor"/> 958 <nil key="highlightedColor"/>
...@@ -993,13 +993,13 @@ ...@@ -993,13 +993,13 @@
993 </constraints> 993 </constraints>
994 </view> 994 </view>
995 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Τα δώρα μου" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FiI-Ni-wy4"> 995 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Τα δώρα μου" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FiI-Ni-wy4">
996 - <rect key="frame" x="20" y="621" width="374" height="32"/> 996 + <rect key="frame" x="20" y="615" width="374" height="38"/>
997 <fontDescription key="fontDescription" name="PFSquareSansPro-Medium" family="PF Square Sans Pro" pointSize="21"/> 997 <fontDescription key="fontDescription" name="PFSquareSansPro-Medium" family="PF Square Sans Pro" pointSize="21"/>
998 <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> 998 <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
999 <nil key="highlightedColor"/> 999 <nil key="highlightedColor"/>
1000 </label> 1000 </label>
1001 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8YP-uG-vbV"> 1001 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8YP-uG-vbV">
1002 - <rect key="frame" x="20" y="211" width="374" height="452"/> 1002 + <rect key="frame" x="20" y="205" width="374" height="458"/>
1003 <subviews> 1003 <subviews>
1004 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="aYf-dv-3Ik"> 1004 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="aYf-dv-3Ik">
1005 <rect key="frame" x="149.5" y="0.0" width="75" height="75"/> 1005 <rect key="frame" x="149.5" y="0.0" width="75" height="75"/>
...@@ -1010,7 +1010,7 @@ ...@@ -1010,7 +1010,7 @@
1010 </constraints> 1010 </constraints>
1011 </imageView> 1011 </imageView>
1012 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SIP-ou-T3X"> 1012 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SIP-ou-T3X">
1013 - <rect key="frame" x="0.0" y="95" width="374" height="19"/> 1013 + <rect key="frame" x="0.0" y="95" width="374" height="16"/>
1014 <fontDescription key="fontDescription" name="PFSquareSansPro-Regular" family="PF Square Sans Pro" pointSize="16"/> 1014 <fontDescription key="fontDescription" name="PFSquareSansPro-Regular" family="PF Square Sans Pro" pointSize="16"/>
1015 <color key="textColor" red="1" green="1" blue="1" alpha="0.60999999999999999" colorSpace="custom" customColorSpace="calibratedRGB"/> 1015 <color key="textColor" red="1" green="1" blue="1" alpha="0.60999999999999999" colorSpace="custom" customColorSpace="calibratedRGB"/>
1016 <nil key="highlightedColor"/> 1016 <nil key="highlightedColor"/>
...@@ -1055,46 +1055,46 @@ ...@@ -1055,46 +1055,46 @@
1055 </view> 1055 </view>
1056 <prototypes> 1056 <prototypes>
1057 <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="CouponsTableViewCellId" id="PUP-z1-zvb" customClass="CouponsTableViewCell" customModule="SwiftWarplyFramework" customModuleProvider="target"> 1057 <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="CouponsTableViewCellId" id="PUP-z1-zvb" customClass="CouponsTableViewCell" customModule="SwiftWarplyFramework" customModuleProvider="target">
1058 - <rect key="frame" x="0.0" y="707.5" width="414" height="116.5"/> 1058 + <rect key="frame" x="0.0" y="707.5" width="414" height="105"/>
1059 <autoresizingMask key="autoresizingMask"/> 1059 <autoresizingMask key="autoresizingMask"/>
1060 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="PUP-z1-zvb" id="dt2-2B-okP"> 1060 <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="PUP-z1-zvb" id="dt2-2B-okP">
1061 - <rect key="frame" x="0.0" y="0.0" width="414" height="116.5"/> 1061 + <rect key="frame" x="0.0" y="0.0" width="414" height="105"/>
1062 <autoresizingMask key="autoresizingMask"/> 1062 <autoresizingMask key="autoresizingMask"/>
1063 <subviews> 1063 <subviews>
1064 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="FsY-Dp-PUQ"> 1064 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="FsY-Dp-PUQ">
1065 - <rect key="frame" x="10" y="0.0" width="394" height="116.5"/> 1065 + <rect key="frame" x="10" y="0.0" width="394" height="105"/>
1066 <subviews> 1066 <subviews>
1067 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="coupon_bg" translatesAutoresizingMaskIntoConstraints="NO" id="vZ4-HF-lwK"> 1067 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="coupon_bg" translatesAutoresizingMaskIntoConstraints="NO" id="vZ4-HF-lwK">
1068 - <rect key="frame" x="0.0" y="0.0" width="394" height="116.5"/> 1068 + <rect key="frame" x="0.0" y="0.0" width="394" height="105"/>
1069 </imageView> 1069 </imageView>
1070 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="f2f-Lm-to3"> 1070 <imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="f2f-Lm-to3">
1071 - <rect key="frame" x="20" y="10" width="79" height="96.5"/> 1071 + <rect key="frame" x="20" y="10" width="79" height="85"/>
1072 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> 1072 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
1073 </imageView> 1073 </imageView>
1074 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zth-sP-rUI"> 1074 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zth-sP-rUI">
1075 - <rect key="frame" x="104" y="5" width="10" height="106.5"/> 1075 + <rect key="frame" x="104" y="5" width="10" height="95"/>
1076 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> 1076 <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
1077 <constraints> 1077 <constraints>
1078 <constraint firstAttribute="width" constant="10" id="0jX-bF-I3k"/> 1078 <constraint firstAttribute="width" constant="10" id="0jX-bF-I3k"/>
1079 </constraints> 1079 </constraints>
1080 </view> 1080 </view>
1081 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BAb-kn-pw0"> 1081 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="BAb-kn-pw0">
1082 - <rect key="frame" x="119" y="15" width="255" height="20"/> 1082 + <rect key="frame" x="119" y="15" width="255" height="17"/>
1083 <fontDescription key="fontDescription" name="PFSquareSansPro-Medium" family="PF Square Sans Pro" pointSize="17"/> 1083 <fontDescription key="fontDescription" name="PFSquareSansPro-Medium" family="PF Square Sans Pro" pointSize="17"/>
1084 <color key="textColor" red="0.2274509804" green="0.32156862749999998" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/> 1084 <color key="textColor" red="0.2274509804" green="0.32156862749999998" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
1085 <nil key="highlightedColor"/> 1085 <nil key="highlightedColor"/>
1086 </label> 1086 </label>
1087 <stackView opaque="NO" contentMode="scaleToFill" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="RJe-Li-bx3"> 1087 <stackView opaque="NO" contentMode="scaleToFill" spacing="5" translatesAutoresizingMaskIntoConstraints="NO" id="RJe-Li-bx3">
1088 - <rect key="frame" x="119" y="40" width="255" height="36.5"/> 1088 + <rect key="frame" x="119" y="37" width="255" height="31"/>
1089 <subviews> 1089 <subviews>
1090 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wBw-w0-bGt"> 1090 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="wBw-w0-bGt">
1091 - <rect key="frame" x="0.0" y="0.0" width="127.5" height="36.5"/> 1091 + <rect key="frame" x="0.0" y="0.0" width="127.5" height="31"/>
1092 <fontDescription key="fontDescription" name="PFSquareSansPro-Bold" family="PF Square Sans Pro" pointSize="31"/> 1092 <fontDescription key="fontDescription" name="PFSquareSansPro-Bold" family="PF Square Sans Pro" pointSize="31"/>
1093 <color key="textColor" red="0.2274509804" green="0.32156862749999998" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/> 1093 <color key="textColor" red="0.2274509804" green="0.32156862749999998" blue="0.40000000000000002" alpha="1" colorSpace="calibratedRGB"/>
1094 <nil key="highlightedColor"/> 1094 <nil key="highlightedColor"/>
1095 </label> 1095 </label>
1096 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Yd2-ue-tBk"> 1096 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Yd2-ue-tBk">
1097 - <rect key="frame" x="132.5" y="0.0" width="122.5" height="36.5"/> 1097 + <rect key="frame" x="132.5" y="0.0" width="122.5" height="31"/>
1098 <fontDescription key="fontDescription" name="PFSquareSansPro-Medium" family="PF Square Sans Pro" pointSize="12"/> 1098 <fontDescription key="fontDescription" name="PFSquareSansPro-Medium" family="PF Square Sans Pro" pointSize="12"/>
1099 <color key="textColor" red="0.3803921569" green="0.4431372549" blue="0.50588235290000005" alpha="1" colorSpace="calibratedRGB"/> 1099 <color key="textColor" red="0.3803921569" green="0.4431372549" blue="0.50588235290000005" alpha="1" colorSpace="calibratedRGB"/>
1100 <nil key="highlightedColor"/> 1100 <nil key="highlightedColor"/>
...@@ -1106,7 +1106,7 @@ ...@@ -1106,7 +1106,7 @@
1106 </constraints> 1106 </constraints>
1107 </stackView> 1107 </stackView>
1108 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EEj-3C-9Td"> 1108 <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="EEj-3C-9Td">
1109 - <rect key="frame" x="119" y="87.5" width="255" height="14"/> 1109 + <rect key="frame" x="119" y="78" width="255" height="12"/>
1110 <fontDescription key="fontDescription" name="PFSquareSansPro-Medium" family="PF Square Sans Pro" pointSize="12"/> 1110 <fontDescription key="fontDescription" name="PFSquareSansPro-Medium" family="PF Square Sans Pro" pointSize="12"/>
1111 <color key="textColor" red="0.3803921569" green="0.4431372549" blue="0.50588235290000005" alpha="1" colorSpace="calibratedRGB"/> 1111 <color key="textColor" red="0.3803921569" green="0.4431372549" blue="0.50588235290000005" alpha="1" colorSpace="calibratedRGB"/>
1112 <nil key="highlightedColor"/> 1112 <nil key="highlightedColor"/>
......