From 9706856118a1b407cd87b18edae394c3cd02db67 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Tue, 7 May 2024 16:19:07 -0500 Subject: [PATCH] Signed-off-by: Matt Bruce --- .../JSONCreator.xcodeproj/project.pbxproj | 10 +- .../JSON/Samples/5G-AccordianList.json | 749 ++++++++---- .../JSON/Samples/FormContactInfo.json | 17 +- .../JSON/Samples/MVA3.0/carousel.json | 2 +- .../JSONCreator/JSON/Samples/Monarch.json | 1059 +++++++++++++++++ .../JSONCreator/JSON/Samples/TabsSample.json | 1 + .../JSON/Samples/TileleListSample.json | 171 +-- .../JSON/Samples/TopNotificiation.json | 122 +- .../JSON/Samples/_HeaderUpdate.json | 846 +++++++++++++ .../JSONCreator/JSON/Samples/_VDS-Button.json | 73 ++ .../JSON/Samples/callUsOptionsLanding.json | 247 ++++ .../JSON/Templates/MoleculeStackTemplate.json | 14 +- .../JSONCreator/MF/ButtonWithImage.swift | 80 ++ .../Artifactory/ArtifactoryItems.txt | 2 +- 14 files changed, 3070 insertions(+), 323 deletions(-) create mode 100644 JSONCreator_iOS/JSONCreator/JSON/Samples/Monarch.json create mode 100644 JSONCreator_iOS/JSONCreator/JSON/Samples/_HeaderUpdate.json create mode 100644 JSONCreator_iOS/JSONCreator/JSON/Samples/_VDS-Button.json create mode 100644 JSONCreator_iOS/JSONCreator/JSON/Samples/callUsOptionsLanding.json create mode 100644 JSONCreator_iOS/JSONCreator/MF/ButtonWithImage.swift diff --git a/JSONCreator_iOS/JSONCreator.xcodeproj/project.pbxproj b/JSONCreator_iOS/JSONCreator.xcodeproj/project.pbxproj index b13f4db..1672500 100644 --- a/JSONCreator_iOS/JSONCreator.xcodeproj/project.pbxproj +++ b/JSONCreator_iOS/JSONCreator.xcodeproj/project.pbxproj @@ -41,14 +41,14 @@ D2B1E3FF22F4A6930065F95C /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D2B1E3FD22F4A6930065F95C /* LaunchScreen.storyboard */; }; D2B1E40A22F4C9F00065F95C /* JSON in Resources */ = {isa = PBXBuildFile; fileRef = D2B1E40922F4C9F00065F95C /* JSON */; }; EA09CDBD282C3FD800A7835F /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA09CDBC282C3FD800A7835F /* CoreBluetooth.framework */; }; - EA1758502BC9B18A00A5C0D9 /* VDSTokens.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA17584F2BC9B18A00A5C0D9 /* VDSTokens.xcframework */; }; - EA1758512BC9B18A00A5C0D9 /* VDSTokens.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = EA17584F2BC9B18A00A5C0D9 /* VDSTokens.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; EA33618B288B1B630071C351 /* VDS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA33618A288B1B630071C351 /* VDS.framework */; }; EA33618C288B1B630071C351 /* VDS.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = EA33618A288B1B630071C351 /* VDS.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; EA5B696E2866BC1000B17D2E /* MVMCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA5B696C2866BC1000B17D2E /* MVMCore.framework */; }; EA5B696F2866BC1000B17D2E /* MVMCore.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = EA5B696C2866BC1000B17D2E /* MVMCore.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; EA5B69702866BC1000B17D2E /* MVMCoreUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EA5B696D2866BC1000B17D2E /* MVMCoreUI.framework */; }; EA5B69712866BC1000B17D2E /* MVMCoreUI.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = EA5B696D2866BC1000B17D2E /* MVMCoreUI.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + EAC58C022BEAB7AB00BA39FA /* VDSCoreTokens.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = EAC58C012BEAB7AB00BA39FA /* VDSCoreTokens.xcframework */; }; + EAC58C032BEAB7AB00BA39FA /* VDSCoreTokens.xcframework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = EAC58C012BEAB7AB00BA39FA /* VDSCoreTokens.xcframework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -59,8 +59,8 @@ dstSubfolderSpec = 10; files = ( EA33618C288B1B630071C351 /* VDS.framework in Embed Frameworks */, - EA1758512BC9B18A00A5C0D9 /* VDSTokens.xcframework in Embed Frameworks */, EA5B696F2866BC1000B17D2E /* MVMCore.framework in Embed Frameworks */, + EAC58C032BEAB7AB00BA39FA /* VDSCoreTokens.xcframework in Embed Frameworks */, EA5B69712866BC1000B17D2E /* MVMCoreUI.framework in Embed Frameworks */, ); name = "Embed Frameworks"; @@ -95,6 +95,7 @@ EA7E676927582F2200ABF773 /* MVMCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MVMCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; EA7E676A27582F2200ABF773 /* MVMCoreUI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = MVMCoreUI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; EAA658142875FA5E00484A7D /* VDSFormControlsTokens.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = VDSFormControlsTokens.xcframework; path = ../SharedFrameworks/VDSFormControlsTokens.xcframework; sourceTree = ""; }; + EAC58C012BEAB7AB00BA39FA /* VDSCoreTokens.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = VDSCoreTokens.xcframework; path = ../SharedFrameworks/VDSCoreTokens.xcframework; sourceTree = ""; }; EACA5E5D2853DBC900CBA65B /* VDSColorTokens.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = VDSColorTokens.xcframework; path = ../SharedFrameworks/VDSColorTokens.xcframework; sourceTree = ""; }; /* End PBXFileReference section */ @@ -105,9 +106,9 @@ files = ( EA09CDBD282C3FD800A7835F /* CoreBluetooth.framework in Frameworks */, EA33618B288B1B630071C351 /* VDS.framework in Frameworks */, + EAC58C022BEAB7AB00BA39FA /* VDSCoreTokens.xcframework in Frameworks */, EA5B696E2866BC1000B17D2E /* MVMCore.framework in Frameworks */, EA5B69702866BC1000B17D2E /* MVMCoreUI.framework in Frameworks */, - EA1758502BC9B18A00A5C0D9 /* VDSTokens.xcframework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -158,6 +159,7 @@ D2B1E42A22F9D0D90065F95C /* Frameworks */ = { isa = PBXGroup; children = ( + EAC58C012BEAB7AB00BA39FA /* VDSCoreTokens.xcframework */, EA17584F2BC9B18A00A5C0D9 /* VDSTokens.xcframework */, EA3361FA2891D54A0071C351 /* VDSTypographyTokens.xcframework */, EA33618A288B1B630071C351 /* VDS.framework */, diff --git a/JSONCreator_iOS/JSONCreator/JSON/Samples/5G-AccordianList.json b/JSONCreator_iOS/JSONCreator/JSON/Samples/5G-AccordianList.json index fe94d12..404e8fb 100644 --- a/JSONCreator_iOS/JSONCreator/JSON/Samples/5G-AccordianList.json +++ b/JSONCreator_iOS/JSONCreator/JSON/Samples/5G-AccordianList.json @@ -1,215 +1,560 @@ { - "Page": { - "pageType": "eagleSignalStrengthTips", - "template": "modalList", - "behaviors": [ - { - - } - ], - "header": { - "moleculeName": "header", - "molecule": { - "moleculeName": "headlineBody", - "headline": { - "moleculeName": "label", - "text": "Tips for finding a good 5G signal" - } - } - }, - "footer": { - "moleculeName": "footer", - "molecule": { - "moleculeName": "button", - "title": "OK", - "action": { - "actionType": "back", - } - } - }, - "molecules": [ - { - "moleculeName": "accordionListItem", - "hideLineWhenExpanded": true, - "selected": true, - "topPadding": 14, - "bottomPadding": 14, - "line": { - "moleculeName": "line", - "type":"none" - }, - "molecule": { - "moleculeName": "label", - "fontStyle": "BoldBodyLarge", - "text": "Face the 5G antenna." - }, - "molecules": [ - { - "moleculeName": "list1CTxt", - "topPadding": 0, - "body": { - "moleculeName": "label", - "text": "The words “Verizon Receiver” should face out towards the antenna. Use the 5G AR compass to reference the location of the antenna or find a new one." - }, - "link": { - "moleculeName": "link", - "title": "Open 5G AR compass", - "action": { - "actionType": "openPage", - "pageType": "forgotPasswordPage" - } - } - } - ] - }, - { - "moleculeName": "accordionListItem", - "hideLineWhenExpanded": true, - "selected": true, - "topPadding": 14, - "bottomPadding": 14, - "line": { - "moleculeName": "line", - "type":"none" - }, - "molecule": { - "moleculeName": "label", - "fontStyle": "BoldBodyLarge", - "text": "Find the clearest path to the antenna." - }, - "molecules": [ - { - "moleculeName": "listItem", - "topPadding": 0, - "molecule": { - "moleculeName": "label", - "text": "If indoors, test at a window first. If you don’t have a window that faces an antenna, or if you prefer to mount the Receiver to a wall, make sure it’s exterior-facing. Upstairs is recommended, or as high as possible in your location.\r\rIf outdoors, move away from trees and other obstacles. If at a railing, position the Receiver on the outer side of the railling, so the railing itself doesn’t block the signal." - } - } - ] - }, - { - "moleculeName": "accordionListItem", - "hideLineWhenExpanded": true, - "selected": true, - "topPadding": 14, - "bottomPadding": 14, - "line": { - "moleculeName": "line", - "type":"none" - }, - "molecule": { - "moleculeName": "label", - "fontStyle": "BoldBodyLarge", - "text": "Check the Receiver for a solid white light." - }, - "molecules": [ - { - "moleculeName": "list1CTxt", - "topPadding": 0, - "body": { - "moleculeName": "label", - "text": "When the Receiver finds a good signal, its LED light will be solid white." - }, - "link": { - "moleculeName": "link", - "title": "Receiver status lights", - "action": { - "actionType": "openPage", - "pageType": "forgotPasswordPage" - } - } - } - ] - }, - { - "moleculeName": "accordionListItem", - "hideLineWhenExpanded": true, - "selected": true, - "topPadding": 14, - "bottomPadding": 14, - "line": { - "moleculeName": "line", - "type":"none" - }, - "molecule": { - "moleculeName": "label", - "fontStyle": "BoldBodyLarge", - "text": "Explore more options." - }, - "molecules": [ - { - "moleculeName": "list1CTxt", - "topPadding": 0, - "body": { - "moleculeName": "label", - "text": "You may be able to test for a signal outdoors, or indoors if you haven’t already. Answer a few questions so we can help you determine what to do next." - }, - "link": { - "moleculeName": "link", - "title": "Learn what to do next", - "action": { - "actionType": "openPage", - "pageType": "forgotPasswordPage" - } - } - } - ] - } - ] + "ResponseInfo" : { + "code" : "00", + "errorCode" : "00", + "message" : "SUCCESS", + "topAlertTime" : 0, + "type" : "Success", + "errorMessage" : "SUCCESS" }, - "ModuleMap": { - "fivegBleUuid": { - "ResponseInfo": { - "locale": "EN", - "type": "Success", - "appSessionExtended": true, - "code": "00000", - "message": "0", - "userMessage": "0", - "topAlertTime": 0 + "SystemParams" : { + "soedc" : "sit1e", + "e2erequestid" : "716618C2-D03F-4E6A-8EFA-1756E3F0A47E" + }, + "Page" : { + "analyticsData" : { + "vzwi.mvmapp.pageName" : "\/mf\/my plans and devices\/5g home internet", + "vzdl.page.throttle" : "nsa", + "vzwi.mvmapp.flowType" : "plans and devices", + "vzwi.mvmapp.flowName" : "5g home internet" + }, + "pageType" : "fiveGHomeLanding", + "molecules" : [ + { + "moleculeName" : "listItem", + "molecule" : { + "moleculeName" : "stack", + "axis" : "horizontal", + "molecules" : [ + { + "moleculeName" : "stackItem", + "percent" : 80, + "molecule" : { + "moleculeName" : "stack", + "molecules" : [ + { + "moleculeName" : "stackItem", + "molecule" : { + "fontStyle" : "H3", + "accessibilityText" : "Network details heading level 3", + "moleculeName" : "label", + "text" : "Network details" + } + }, + { + "moleculeName" : "stackItem", + "molecule" : { + "moleculeName" : "label", + "text" : "605.484.4153" + } + }, + { + "moleculeName" : "stackItem", + "molecule" : { + "moleculeName" : "button", + "action" : { + "actionType" : "openPage", + "pageType" : "lineDetails", + "extraParameters" : { + "launchPage" : "fiveGHomeLanding", + "selectedMdn" : "6054844153" + }, + "presentationStyle" : "push", + "openInWebview" : true, + "requestURL" : "https:\/\/mobile-exp-qa1.vzw.com\/mobile\/nsa\/psecure\/gw\/5groutermgmt\/lineDetails", + "tryToReplaceFirst" : false, + "showNativeNavigation" : false, + "openOauthWebView" : false, + "title" : "Manage equipment", + "disabled" : false + }, + "style" : "primary", + "accessibilityText" : "Manage equipment for 605.484.4153", + "enabled" : true, + "title" : "Manage equipment", + "size" : "small", + "validationRequired" : false + }, + "horizontalAlignment" : "leading" + }, + { + "moleculeName" : "stackItem", + "molecule" : { + "accessibilityText" : "Manage Plan for 605.484.4153", + "title" : "Manage Plan", + "moleculeName" : "link", + "action" : { + "actionType" : "openPage", + "pageType" : "ManagePlan", + "extraParameters" : { + "browserUrl" : "https:\/\/vzwqa1.verizonwireless.com\/digital\/nsa\/secure\/ui\/cpc\/mvm\/?pmd=y&flowtype=5ghome&referrer=MVA&tabbar=true&mtnHashCode=8bb2aefe61c23f4bf0d507ee70ce832fd4e1d9e8280412c3ead6138bfdd5f85b&launchPage=fivegHomeLanding" + }, + "openInWebview" : true, + "requestURL" : "https:\/\/mobile-exp-qa1-west-2.vzw.com\/mobile\/nsa\/nos\/gw\/launchapp\/l2\/webview", + "tryToReplaceFirst" : false, + "showNativeNavigation" : false, + "enableNativeScroll" : true, + "openOauthWebView" : false, + "title" : "Manage Plan", + "disabled" : false + } + } + } + ] + } + }, + { + "useHorizontalMargins" : true, + "percent" : 20, + "moleculeName" : "stackItem", + "rightPadding" : 0, + "molecule" : { + "image" : "https:\/\/ss7.vzw.com\/is\/image\/VerizonWireless\/vzw-internet-gateway-askey-titan-2-router-white-arc-xci55ax", + "moleculeName" : "image", + "width" : 50 + }, + "leftPadding" : 0 + } + ] + } }, - "fivegBleUuid": { - "bleAPIVersion": "2.0", - "bleSignalThreshold": "-94", - "bleSignalLowerBound": "-140", - "bleSignalUpperBound": "-1", - "advertisedData": "VZ5G_RECEIVER_203975", - "pin": "000000", - "bleAdv": [ - { - "uuid": "00002a37-0000-1000-8000-00805f9b34fb" + { + "headlineBody" : { + "moleculeName" : "headlineBody", + "headline" : { + "accessibilityText" : "Connected Devices for 605.484.4153", + "textColor" : "#000000", + "moleculeName" : "label", + "text" : "Connected Devices" } - ], - "service": [ + }, + "moleculeName" : "list1CFWBdy", + "action" : { + "actionType" : "openPage", + "pageType" : "managefiveGDevices", + "extraParameters" : { + "selectedMdn" : "6054844153" + }, + "openInWebview" : true, + "requestURL" : "https:\/\/mobile-exp-qa1.vzw.com\/mobile\/nsa\/psecure\/gw\/5groutermgmt\/managefiveGDevices", + "tryToReplaceFirst" : false, + "showNativeNavigation" : false, + "openOauthWebView" : false, + "title" : "Connected Devices", + "disabled" : false + } + }, + { + "headlineBody" : { + "moleculeName" : "headlineBody", + "headline" : { + "accessibilityText" : "Network settings for 605.484.4153", + "textColor" : "#000000", + "moleculeName" : "label", + "text" : "Network settings" + } + }, + "moleculeName" : "list1CFWBdy", + "line" : { + "moleculeName" : "line", + "type" : "none" + }, + "action" : { + "actionType" : "openPage", + "pageType" : "managefiveGNetworks", + "extraParameters" : { + "selectedMdn" : "6054844153" + }, + "openInWebview" : true, + "requestURL" : "https:\/\/mobile-exp-qa1.vzw.com\/mobile\/nsa\/psecure\/gw\/5groutermgmt\/managefiveGNetworks", + "tryToReplaceFirst" : false, + "showNativeNavigation" : false, + "openOauthWebView" : false, + "title" : "Network settings", + "disabled" : false + } + }, + { + "moleculeName" : "listItem", + "line" : { + "moleculeName" : "line", + "type" : "none" + }, + "molecule" : { + "fontStyle" : "H3", + "accessibilityText" : "605.484.4153 heading level 3", + "moleculeName" : "label", + "text" : "Resources" + } + }, + { + "moleculeName" : "listItem", + "line" : { + "moleculeName" : "line", + "type" : "none" + }, + "molecule" : { + "moleculeName" : "stack", + "backgroundColor" : "#F6F6F6", + "molecules" : [ + { + "useHorizontalMargins" : true, + "useVerticalMargins" : true, + "topPadding" : 20, + "moleculeName" : "stackItem", + "molecule" : { + "fontStyle" : "BoldBodyLarge", + "accessibilityText" : "", + "moleculeName" : "label", + "attributes" : [ + { + "size" : 14, + "length" : 0, + "style" : "BoldBodyLarge", + "type" : "font", + "location" : 0 + } + ], + "text" : "Want a stronger 5G signal?" + }, + "leftPadding" : 20 + }, + { + "useHorizontalMargins" : true, + "useVerticalMargins" : true, + "topPadding" : 0, + "moleculeName" : "stackItem", + "molecule" : { + "fontStyle" : "RegularBodySmall", + "textColor" : "#6F7171", + "accessibilityText" : "", + "moleculeName" : "label", + "attributes" : [ + { + "size" : 12, + "length" : 0, + "style" : "RegularBodySmall", + "type" : "font", + "location" : 0, + "color" : "#6F7171" + } + ], + "text" : "We’ll test the 5G signal around your home to find the best spot for the Internet Gateway." + }, + "leftPadding" : 20 + }, + { + "moleculeName" : "stackItem", + "useHorizontalMargins" : true, + "horizontalAlignment" : "leading", + "leftPadding" : 20, + "useVerticalMargins" : true, + "bottomPadding" : 20, + "molecule" : { + "style" : "secondary", + "moleculeName" : "button", + "title" : "Get Started", + "action" : { + "actionType" : "noop", + "analyticsData" : { + "vzdl.page.linkName" : "Want to reposition this Gateway" + }, + "pageType" : "checkNodeStatus", + "extraParameters" : { + "device" : "titan2", + "imei" : "351468740750603", + "selectedMdn" : "6054844153", + "flow" : "reposition", + "requestFrom" : "fiveGHomeLanding", + "MOCK_OUTAGE_DETAILS" : "Y", + "fivegMdn" : "6054844153" + }, + "openInWebview" : true, + "requestURL" : "https:\/\/mobile-exp-qa1.vzw.com\/mobile\/nsa\/psecure\/gw\/5gpresetup\/native\/checkNodeStatus", + "tryToReplaceFirst" : false, + "disabled" : false + } + } + } + ] + } + }, + { + "moleculeName" : "listItem", + "action" : { + "actionType" : "openPage", + "analyticsData" : { + "vzdl.page.linkName" : "Speed test" + }, + "pageType" : "fivegHomeSpeedTestLanding", + "extraParameters" : { + "launchPage" : "fiveGHomeLanding", + "selectedMdn" : "6054844153" + }, + "openInWebview" : true, + "requestURL" : "https:\/\/mobile-exp-qa1.vzw.com\/mobile\/nsa\/psecure\/gw\/5groutermgmt\/fivegHomeSpeedTestLanding", + "tryToReplaceFirst" : false, + "disabled" : false + }, + "molecule" : { + "moleculeName" : "stack", + "axis" : "vertical", + "molecules" : [ + { + "moleculeName" : "stackItem", + "molecule" : { + "fontStyle" : "B1", + "accessibilityText" : "Speed test for 605.484.4153", + "textColor" : "#000000", + "moleculeName" : "label", + "text" : "Speed test" + } + }, + { + "spacing" : 5, + "moleculeName" : "stackItem", + "molecule" : { + "fontStyle" : "B2", + "accessibilityText" : "Measure your network's connection speed for 605.484.4153", + "textColor" : "#6F7171", + "moleculeName" : "label", + "text" : "Measure your network's connection speed." + } + } + ] + } + }, + { + "moleculeName" : "listItem", + "action" : { + "actionType" : "openPage", + "analyticsData" : { + "vzdl.page.linkName" : "Wi-Fi Health Check" + }, + "pageType" : "fivegWHCWelcome", + "extraParameters" : { + "requestFrom" : "5G Home Landing", + "imei" : "351468740750603", + "selectedMdn" : "6054844153" + }, + "openInWebview" : true, + "requestURL" : "https:\/\/mobile-exp-qa1.vzw.com\/mobile\/nsa\/psecure\/gw\/5groutermgmt\/fivegWHCWelcome", + "tryToReplaceFirst" : false, + "showNativeNavigation" : false, + "openOauthWebView" : false, + "title" : "Wi-Fi Health Check", + "disabled" : false + }, + "molecule" : { + "moleculeName" : "stack", + "axis" : "vertical", + "molecules" : [ + { + "moleculeName" : "stackItem", + "molecule" : { + "fontStyle" : "B1", + "accessibilityText" : "Wi-Fi Health Check for 605.484.4153", + "textColor" : "#000000", + "moleculeName" : "label", + "text" : "Wi-Fi Health Check" + } + }, + { + "spacing" : 5, + "moleculeName" : "stackItem", + "molecule" : { + "fontStyle" : "B2", + "accessibilityText" : "Review the connection history of your devices to check if you need a Wi-Fi Extender for 605.484.4153", + "textColor" : "#6F7171", + "moleculeName" : "label", + "text" : "Review the connection history of your devices to check if you need a Wi-Fi Extender." + } + } + ] + } + }, + { + "moleculeName" : "listItem", + "molecule" : { + "moleculeName" : "stack", + "axis" : "vertical", + "molecules" : [ + { + "moleculeName" : "stackItem", + "molecule" : { + "fontStyle" : "B1", + "accessibilityText" : "Wi-Fi Signal Analyzer for 605.484.4153", + "textColor" : "#BEC0BF", + "moleculeName" : "label", + "text" : "Wi-Fi Signal Analyzer" + } + }, + { + "spacing" : 5, + "moleculeName" : "stackItem", + "molecule" : { + "fontStyle" : "B2", + "accessibilityText" : "Map the Wi-Fi signal strength around your home for 605.484.4153", + "textColor" : "#BEC0BF", + "moleculeName" : "label", + "text" : "Map the Wi-Fi signal strength around your home." + } + } + ] + } + }, + { + "line" : { + "moleculeName" : "line", + "type" : "medium" + }, + "moleculeName" : "listItem", + "molecule" : { + "moleculeName" : "stack", + "axis" : "vertical", + "molecules" : [ + { + "moleculeName" : "stackItem", + "molecule" : { + "fontStyle" : "B1", + "accessibilityText" : "WPS pairing for 605.484.4153", + "textColor" : "#000000", + "moleculeName" : "label", + "text" : "WPS pairing" + } + }, + { + "spacing" : 5, + "moleculeName" : "stackItem", + "molecule" : { + "fontStyle" : "B2", + "accessibilityText" : "Connect a device to Wi-Fi using its WPS button for 605.484.4153", + "textColor" : "#6F7171", + "moleculeName" : "label", + "text" : "Connect a device to Wi-Fi using its WPS button." + } + } + ] + }, + "action" : { + "actionType" : "openPage", + "analyticsData" : { + "vzdl.page.linkName" : "WPS pairing" + }, + "pageType" : "addDeviceViaWPS", + "extraParameters" : { + "launchPage" : "fiveGHomeLanding", + "selectedMdn" : "6054844153" + }, + "openInWebview" : true, + "requestURL" : "https:\/\/mobile-exp-qa1.vzw.com\/mobile\/nsa\/psecure\/gw\/5groutermgmt\/addDeviceViaWPS", + "tryToReplaceFirst" : false, + "disabled" : false + } + } + ], + "presentationStyle" : "push", + "cache" : false, + "screenHeading" : "Home Internet", + "header" : { + "moleculeName" : "header", + "molecule" : { + "moleculeName" : "stack", + "molecules" : [ { - "uuid": "6FE382F6-7A33-4990-9D7B-F2770A161E68", - "characteristicUUID": { - "Fiveg": "6FE382F6-7A33-4990-9D7B-4C9002F90979", - "Fourg": "6FE382F6-7A33-4990-9D7B-4C9005F90979", - "Radiocontrol": "6FE382F6-7A33-4990-9D7B-4C9003F90979", - "Activation": "6FE382F6-7A33-4990-9D7B-4C9006F90979", - "RepeaterPair": "6FE382F6-7A33-4990-9D7B-4C9010F90979", - "RepeaterMode": "6FE382F6-7A33-4990-9D7B-4C9011F90979", - "RepeaterPairStatus": "6FE382F6-7A33-4990-9D7B-4C9012F90979", - "RepeaterOperations": "6FE382F6-7A33-4990-9D7B-4C9013F90979", - "ReceiverMode": "6FE382F6-7A33-4990-9D7B-4C9070F90979", - "RouterMode": "6FE382F6-7A33-4990-9D7B-4C9071F90979", - "RouterWifi": "6FE382F6-7A33-4990-9D7B-4C9072F90979", - "RouterPublicInternetAccess": "6FE382F6-7A33-4990-9D7B-4C9073F90979", - "RouterSpeedTest": "6FE382F6-7A33-4990-9D7B-4C9074F90979", - "RouterSpeedTestResults": "6FE382F6-7A33-4990-9D7B-4C9075F90979", - "WifiExtendersStatus": "6FE382F6-7A33-4990-9D7B-4C9076F90979", - "AddWifiExtender": "6FE382F6-7A33-4990-9D7B-4C9077F90979", - "PowerCycle": "6FE382F6-7A33-4990-9D7B-4C9078F90979", - "FOTACheck": "6FE382F6-7A33-4990-9D7B-4C9079F90979", - "FOTAStatus": "6FE382F6-7A33-4990-9D7B-4C907AF90979", - "RepeaterInfo": "1C120000-88DD-4E3E-AFC2-DF4300574E43" + "moleculeName" : "stackItem", + "molecule" : { + "moleculeName" : "titleLockup", + "eyebrow": { + "moleculeName" : "label", + "text" : "Account #0220205532-00001", + "fontStyle": "H3" + }, + "title": { + "moleculeName" : "label", + "text" : "Manage your Verizon Home Internet here.", + "accessibilityText" : "Manage your Verizon Home Internet here heading level 1.", + "fontStyle": "H1" + } + }, + }, + { + "moleculeName" : "stackItem", + "molecule" : { + "image" : { + "contentMode" : "scaleAspectFill", + "moleculeName" : "image", + "image" : "https:\/\/ss7.vzw.com\/is\/image\/VerizonWireless\/VHI_lifestyle_tile_bg?fmt=png-alpha", + "imageFormat" : "png", + "height" : 172 + }, + "moleculeName" : "bgImageContainer", + "molecule" : { + "moleculeName" : "stack", + "molecules" : [ + { + "useVerticalMargins" : true, + "moleculeName" : "stackItem", + "bottomPadding" : 30, + "molecule" : { + "body" : { + "moleculeName" : "label", + "text" : "Learn about your home internet." + }, + "style" : "header", + "moleculeName" : "headlineBody", + "headline" : { + "moleculeName" : "label", + "text" : "Explore how-to videos.", + "fontStyle" : "H3" + } + } + }, + { + "useHorizontalMargins" : true, + "moleculeName" : "stackItem", + "rightPadding" : 5, + "molecule" : { + "moleculeName" : "stack", + "axis" : "horizontal", + "molecules" : [ + { + "moleculeName" : "stackItem", + "molecule" : { + "image" : { + "contentMode" : "scaleAspectFit", + "moleculeName" : "image", + "image" : "https:\/\/ss7.vzw.com\/is\/image\/VerizonWireless\/icon_right-arrow_96x96?fmt=png-alpha", + "width" : 24, + "height" : 24 + }, + "moleculeName" : "imageButton", + "action" : { + "actionType" : "openPage", + "pageType" : "x" + } + }, + "horizontalAlignment" : "trailing" + } + ] + } + } + ] + } } } ] } + }, + "isAtomicTabs" : true, + "template" : "list", + "navigationBar" : { + "tabBarIndex" : 1, + "moleculeName" : "navigationBar", + "title" : "Home Internet", + "presentationStyle" : "push" } } } + diff --git a/JSONCreator_iOS/JSONCreator/JSON/Samples/FormContactInfo.json b/JSONCreator_iOS/JSONCreator/JSON/Samples/FormContactInfo.json index 5b28f2a..6319fb3 100644 --- a/JSONCreator_iOS/JSONCreator/JSON/Samples/FormContactInfo.json +++ b/JSONCreator_iOS/JSONCreator/JSON/Samples/FormContactInfo.json @@ -22,15 +22,12 @@ { "moleculeName": "stackItem", "molecule": { - "moleculeName": "textView", + "moleculeName": "textField", "fieldKey": "firstName", "type": "text", "errorMessage": "Please enter a valid first name.", "placeholder": "John A", - "titleLabel": { - "moleculeName": "label", - "text": "First Name" - } + "title": "First Name" } }, { @@ -41,10 +38,7 @@ "type": "text", "placeholder": "Smith", "errorMessage": "Please enter a valid last name.", - "titleLabel": { - "moleculeName": "label", - "text": "Last Name" - } + "title": "Last Name" } }, { @@ -105,6 +99,11 @@ { "groupName": "default", "rules": [ + { + "type":"equals", + "fields": ["firstName", "lastName"], + "errorMessage": {"lastName": "Please enter a Last Name that matches the First Name."} + }, { "type": "regex", "fields": [ diff --git a/JSONCreator_iOS/JSONCreator/JSON/Samples/MVA3.0/carousel.json b/JSONCreator_iOS/JSONCreator/JSON/Samples/MVA3.0/carousel.json index 104caf3..6ca2520 100644 --- a/JSONCreator_iOS/JSONCreator/JSON/Samples/MVA3.0/carousel.json +++ b/JSONCreator_iOS/JSONCreator/JSON/Samples/MVA3.0/carousel.json @@ -38,7 +38,7 @@ "selectedIndex": 2, "loop":true, "pagingMolecule": { - "moleculeName":"barsCarouselIndicator" + "moleculeName":"numericCarouselIndicator" }, "molecules" : [ { diff --git a/JSONCreator_iOS/JSONCreator/JSON/Samples/Monarch.json b/JSONCreator_iOS/JSONCreator/JSON/Samples/Monarch.json new file mode 100644 index 0000000..387c031 --- /dev/null +++ b/JSONCreator_iOS/JSONCreator/JSON/Samples/Monarch.json @@ -0,0 +1,1059 @@ +{ + "SystemParams":{ + "googleMapsAPIKey":"AIzaSyD9-5Q4fTMYESxmbZhYpA98sy7XFK2d0BE", + "enableGoogleMapsIOS":true + }, + "Page":{ + "ResponseInfo":{ + "type":"Success", + "code":"00000" + }, + "pageType":"prospectWelcomeTrial", + "backgroundColor":"white", + "tabBarIndex":0, + "navigationBar":{ + "moleculeName":"navigationBar", + "additionalLeftButtons":[ + { + "accessibilityText":"Verizon logo, tap anytime to scroll to top of page", + "moleculeName":"navigationImageButton", + "image":"nav_vz_mark", + "imageRenderingMode":"alwaysOriginal", + "action":{ + "analyticsData":{ + "vzdl.page.linkName":"global black bar nav: vz icon" + }, + "actionType":"scrollToTop" + } + } + ], + "additionalRightButtons":[ + { + "moleculeName":"navigationLabelButton", + "title":"Sign in", + "action":{ + "hideCloseButton":false, + "appContext":"mobileFirstSS", + "analyticsData":{ + "vzdl.page.id":"prospectTrailWelcome", + "vzdl.target.engagement.intent":"customer sign in", + "vzdl.page.displayChannel":"MVA", + "vzdl.page.linkName":"I'm a customer", + "vzdl.page.name":"prospectTrailWelcome" + }, + "requestURL":"https:\/\/mobile-exp.vzw.com\/mobile\/nsa\/nos\/gw\/launchapp\/oauthSignIn?", + "extraParameters":{ + "oAuthLaunchAppFlow":"Y" + }, + "disableNativeAction":false, + "customUserAgent":"MY_VZW_APP;IOS;16.3.1;iPhone15,2;10.5.0;VZW-MFA-IOS", + "openInWebview":true, + "disableOfflineDevice":false, + "hideUrl":false, + "actionType":"openPage", + "pageType":"userSignIn", + "presentationStyle":"root", + "isSelected":false, + "openOauthWebView":false, + "hideWebNavigation":false, + "selected":false + } + } + ] + }, + "line":{ + "moleculeName":"line", + "type":"none" + }, + "header":{ + "moleculeName":"headerH1", + "useVerticalMargins":true, + "topPadding":32, + "bottomPadding":32, + "titleLockup":{ + "moleculeName":"titleLockup", + "title":{ + "moleculeName":"label", + "text":"Join Verizon\nand stay\nconnected.", + "fontStyle":"BoldTitle2XLarge" + } + } + }, + "template":"list", + "molecules":[ + { + "moleculeName":"listItem", + "useHorizontalMargins":false, + "useVerticalMargins":false, + "molecule":{ + "moleculeName":"carousel", + "accessibilityText":"carousel", + "pagingMolecule":{ + "moleculeName":"barsCarouselIndicator", + "position":-20 + }, + "height":285, + "spacing":12, + "itemWidthPercent":85, + "useHorizontalMargins":true, + "leftPadding":16, + "rightPadding":16, + "molecules":[ + { + "moleculeName":"carouselItem", + "useVerticalMargins":false, + "useHorizontalMargins":false, + "molecule":{ + "moleculeName":"tileContainer", + "color":"black", + "backgroundImage": "https://googlex.jpg", + "molecule":{ + "moleculeName":"stack", + "axis":"vertical", + "molecules":[ + { + "moleculeName":"stackItem", + "spacing":0, + "molecule":{ + "moleculeName":"label", + "text":"Verizon\nFree Trial", + "fontStyle":"BoldTitleXLarge", + "textColor":"white" + } + }, + { + "moleculeName":"stackItem", + "spacing":8, + "molecule":{ + "moleculeName":"label", + "text":"Try the network America relies on, free for 30 days.", + "fontStyle":"RegularTitleSmall", + "textColor":"white" + } + }, + { + "moleculeName":"stackItem", + "horizontalAlignment":"leading", + "verticalAlignment":"center", + "molecule":{ + "moleculeName":"button", + "title":"Try Verizon", + "inverted":true, + "action":{ + "openOauthWebView":true, + "tabBarHidden":true, + "selected":false, + "analyticsData":{ + "vzdl.page.id":"prospect_3_0_discover", + "vzdl.page.name":"prospect_discover", + "vzdl.page.displayChannel":"mva", + "vzdl.page.linkName":"Try Verizon", + "vzdl.page.sourceChannel":"mva" + }, + "requestURL":"https:\/\/mobile-exp-qa1-west-2.vzw.com\/mobile\/nsa\/nos\/gw\/launchapp\/unauthenticatedWebview", + "extraParameters":{ + "browserUrl":"https:\/\/vzwqa1.verizonwireless.com\/sales\/digital\/trial.html?identifier=iPhone15%2C5&s_ecid=31408684872825763424743718268318966933&intcmp=mva-vzw-prospect_discover-startFreeTrial&fromdeeplink=false", + "flowName":"freeTrialRegistration" + }, + "disableNativeAction":false, + "showNativeNavigation":true, + "customUserAgent":"MY_VZW_APP;IOS;17.0;iPhone15,5;11.6.0;VZW-MFA-IOS", + "openInWebview":true, + "disableOfflineDevice":false, + "hideUrl":true, + "actionType":"openPage", + "pageType":"trialFlow", + "presentationStyle":"push", + "clientParameters":{ + "timeout":30, + "list":[ + { + "type":"eSimCapable" + } + ] + }, + "isSelected":false, + "hideWebNavigation":true, + "enableNativeScroll":true + } + } + }, + { + "moleculeName":"stackItem", + "horizontalAlignment":"leading", + "molecule":{ + "moleculeName":"link", + "title":"Share with a friend", + "enabledColor":"white", + "action":{ + "analyticsData":{ + "vzdl.page.id":"prospect_3_0_discover", + "vzdl.page.name":"prospect_discover", + "vzdl.page.displayChannel":"mva", + "vzdl.page.linkName":"Share with a friend", + "vzdl.page.sourceChannel":"mva" + }, + "actionType":"share", + "items":[ + { + "type":"text", + "value":"Join the best mobile network. Try the best network free for 30 days." + }, + { + "type":"url", + "value":"https:\/\/m-sit.vzw.com\/feEru7GF" + } + ] + } + } + } + ] + } + } + }, + { + "moleculeName":"carouselItem", + "cornerRadius":8, + "useVerticalMargins":false, + "useHorizontalMargins":false, + "backgroundColor":"white", + "molecule":{ + "moleculeName":"bgImageContainer", + "leftPadding":32, + "rightPadding":32, + "image":{ + "moleculeName":"image", + "image":"https://googlex.jpg" + }, + "molecule":{ + "moleculeName":"stack", + "axis":"vertical", + "molecules":[ + { + "moleculeName":"stackItem", + "spacing":0, + "molecule":{ + "moleculeName":"label", + "text":"Bring your\nown device", + "fontStyle":"BoldTitleXLarge" + } + }, + { + "moleculeName":"stackItem", + "spacing":8, + "molecule":{ + "moleculeName":"label", + "text":"Bring your device and\nget up to $540 on\nselect plans.", + "fontStyle":"RegularTitleSmall" + } + }, + { + "moleculeName":"stackItem", + "horizontalAlignment":"leading", + "verticalAlignment":"center", + "molecule":{ + "moleculeName":"button", + "size":"small", + "title":"Get started", + "action":{ + "analyticsData":{ + "vzdl.page.id":"prospectTrailWelcome", + "vzdl.target.engagement.intent":"prospectJoinVerizon", + "vzdl.page.displayChannel":"MVA", + "vzdl.page.linkName":"Join Verizon", + "vzdl.page.name":"prospectTrailWelcome" + }, + "presentationStyle":"root", + "pageType":"joinByodProspect", + "disableOfflineDevice":false, + "showNativeNavigation":true, + "disableAction":false, + "hideCloseButton":true, + "hideWebNavigation":false, + "checkCameraPermission":false, + "enableNativeScroll":true, + "appContext":"mobileFirstSS", + "disableNativeAction":false, + "openInWebview":true, + "isSelected":false, + "requestURL":"https:\/\/www.verizon .com\/onedp\/api\/mva\/verifyDevice?identifier=IPHONE15,2&promptZip=true", + "tryToReplaceFirst":false, + "browserUrl":"https:\/\/www.verizon.com\/onedp\/api\/mva\/verifyDevice?identifier=IPHONE15,2&promptZip=true", + "actionType":"openURL", + "length":0, + "openOauthWebView":true, + "selected":false, + "clientParameters":{ + "timeout":30, + "list":[ + { + "type":"eSimCapable" + } + ] + }, + "customUserAgent":"MY_VZW_APP;IOS;16.3.1;iPhone15,2;10.5.0;VZW-MFA-IOS", + "hideUrl":true + } + } + } + ] + } + } + } + ] + } + }, + { + "moleculeName":"listItem", + "useHorizontalMargins":false, + "topPadding":32, + "backgroundColor":"coolGray1", + "molecule":{ + "moleculeName":"carousel", + "accessibilityText":"carousel", + "pagingMolecule":{ + "moleculeName":"barsCarouselIndicator", + "position":-20 + }, + "height":92, + "spacing":12, + "itemWidthPercent":45, + "useHorizontalMargins":true, + "leftPadding":16, + "rightPadding":16, + "molecules":[ + { + "moleculeName":"carouselItem", + "backgroundColor":"white", + "cornerRadius":8, + "useVerticalMargins":true, + "topPadding":16, + "bottomPadding":16, + "molecule":{ + "moleculeName":"stack", + "axis":"vertical", + "molecules":[ + { + "moleculeName":"stackItem", + "spacing":0, + "horizontalAlignment":"leading", + "molecule":{ + "moleculeName":"label", + "text":"Deals", + "fontStyle":"BoldTitleSmall" + } + }, + { + "moleculeName":"stackItem", + "horizontalAlignment":"trailing", + "verticalAlignment":"trailing", + "molecule":{ + "moleculeName":"arrow" + } + } + ] + }, + "action":{ + "presentationStyle":"push", + "actionType":"openPage", + "pageType":"deals" + } + }, + { + "moleculeName":"carouselItem", + "backgroundColor":"white", + "cornerRadius":8, + "useVerticalMargins":true, + "topPadding":16, + "bottomPadding":16, + "molecule":{ + "moleculeName":"stack", + "axis":"vertical", + "molecules":[ + { + "moleculeName":"stackItem", + "spacing":0, + "horizontalAlignment":"leading", + "molecule":{ + "moleculeName":"label", + "text":"Shop phones", + "fontStyle":"BoldTitleSmall" + } + }, + { + "moleculeName":"stackItem", + "horizontalAlignment":"trailing", + "verticalAlignment":"trailing", + "molecule":{ + "moleculeName":"arrow" + } + } + ] + }, + "action":{ + "presentationStyle":"push", + "actionType":"openPage", + "pageType":"smartphones" + } + }, + { + "moleculeName":"carouselItem", + "backgroundColor":"white", + "cornerRadius":8, + "useVerticalMargins":true, + "topPadding":16, + "bottomPadding":16, + "molecule":{ + "moleculeName":"stack", + "axis":"vertical", + "molecules":[ + { + "moleculeName":"stackItem", + "spacing":0, + "horizontalAlignment":"leading", + "molecule":{ + "moleculeName":"label", + "text":"Shop plans", + "fontStyle":"BoldTitleSmall" + } + }, + { + "moleculeName":"stackItem", + "horizontalAlignment":"trailing", + "verticalAlignment":"trailing", + "molecule":{ + "moleculeName":"arrow" + } + } + ] + }, + "action":{ + "presentationStyle":"push", + "actionType":"openPage", + "pageType":"plans" + } + } + ] + } + }, + { + "moleculeName":"listItem", + "topPadding":32, + "bottomPadding":0, + "backgroundColor":"coolGray1", + "molecule":{ + "moleculeName":"stack", + "axis":"vertical", + "backgroundColor":"white", + "cornerRadius":8, + "useHorizontalMargins":true, + "useVerticalMargins":true, + "leftPadding":24, + "rightPadding":24, + "topPadding":24, + "bottomPadding":24, + "molecules":[ + { + "moleculeName":"stackItem", + "spacing":0, + "molecule":{ + "moleculeName":"label", + "text":"The network\nAmerica relies on.", + "fontStyle":"BoldTitleXLarge" + } + }, + { + "moleculeName":"stackItem", + "spacing":24, + "molecule":{ + "moleculeName":"stack", + "axis":"horizontal", + "molecules":[ + { + "moleculeName":"stackItem", + "molecule":{ + "moleculeName":"image", + "image":"Prospect5GChart", + "width":35, + "height":32, + "contentMode":"scaleAspectFit" + } + }, + { + "moleculeName":"stackItem", + "molecule":{ + "moleculeName":"label", + "text":"5G Nationwide covers 200+ million people in 2,700+ cities.", + "fontStyle":"RegularBodyMedium" + } + } + ] + } + }, + { + "moleculeName":"stackItem", + "spacing":24, + "molecule":{ + "moleculeName":"stack", + "axis":"horizontal", + "molecules":[ + { + "moleculeName":"stackItem", + "molecule":{ + "moleculeName":"image", + "image":"ProspectDevice", + "width":35, + "height":32, + "contentMode":"scaleAspectFit" + } + }, + { + "moleculeName":"stackItem", + "molecule":{ + "moleculeName":"label", + "text":"Highest in Customer Satisfaction with Small Business Wireless Service.", + "fontStyle":"RegularBodyMedium" + } + } + ] + } + }, + { + "moleculeName":"stackItem", + "spacing":24, + "horizontalAlignment":"fill", + "molecule":{ + "moleculeName":"button", + "style":"secondary", + "title":"Check our mobile coverage map", + "action":{ + "actionType":"openPage", + "pageType":"coverage" + } + } + } + ] + } + }, + { + "moleculeName":"listItem", + "topPadding":32, + "bottomPadding":0, + "backgroundColor":"coolGray1", + "hideArrow":true, + "molecule":{ + "moleculeName":"stack", + "axis":"vertical", + "backgroundColor":"stone", + "cornerRadius":8, + "useHorizontalMargins":true, + "useVerticalMargins":true, + "leftPadding":24, + "rightPadding":24, + "topPadding":24, + "bottomPadding":24, + "molecules":[ + { + "moleculeName":"stackItem", + "spacing":0, + "molecule":{ + "moleculeName":"label", + "text":"Get Home Internet\nand save.", + "fontStyle":"BoldTitleXLarge", + "textColor":"red" + } + }, + { + "moleculeName":"stackItem", + "spacing":16, + "molecule":{ + "moleculeName":"stack", + "axis":"horizontal", + "molecules":[ + { + "moleculeName":"stackItem", + "verticalAlignment":"trailing", + "molecule":{ + "moleculeName":"stack", + "axis":"vertical", + "molecules":[ + { + "moleculeName":"stackItem", + "molecule":{ + "moleculeName":"label", + "text":"Starting at", + "fontStyle":"BoldMicro", + "textColor":"red" + } + }, + { + "moleculeName":"stackItem", + "spacing":2, + "molecule":{ + "moleculeName":"stack", + "axis":"horizontal", + "molecules":[ + { + "moleculeName":"stackItem", + "spacing":0, + "verticalAlignment":"leading", + "molecule":{ + "moleculeName":"label", + "text":"$", + "fontStyle":"BoldTitleLarge", + "textColor":"red" + } + }, + { + "moleculeName":"stackItem", + "spacing":0, + "molecule":{ + "moleculeName":"label", + "text":"35", + "numberOfLines":1, + "fontStyle":"BoldFeatureLarge", + "textColor":"red" + } + }, + { + "moleculeName":"stackItem", + "verticalAlignment":"trailing", + "spacing":0, + "molecule":{ + "moleculeName":"label", + "text":"/mo", + "numberOfLines":1, + "fontStyle":"BoldMicro", + "textColor":"red" + } + } + ] + } + } + ] + } + }, + { + "moleculeName":"stackItem", + "horizontalAlignment":"leading", + "molecule":{ + "moleculeName":"label", + "text":"Switch to\nVerizon Home\nInternet\nstarting at a\nlow price,\nguaranteed.", + "fontStyle":"RegularBodySmall", + "textColor":"red" + } + }, + { + "moleculeName":"stackItem", + "verticalAlignment":"trailing", + "molecule":{ + "moleculeName":"arrow", + "color":"red" + } + } + ] + } + } + ] + }, + "action":{ + "actionType":"openPage", + "pageType":"home" + } + } + ] + }, + "ModuleMap":{ + "tabBar":{ + "tabs":[ + { + "title":"Discover", + "image":"tab_discover", + "tabBarIndex":0, + "action":{ + "actionType":"openPage", + "pageType":"prospectWelcomeTrial", + "presentationStyle":"root" + } + }, + { + "title":"Account", + "image":"tab_account", + "tabBarIndex":1, + "action":{ + "actionType":"openPage", + "pageType":"trialDashboard", + "presentationStyle":"root" + } + }, + { + "title":"Shop", + "image":"tab_shop_3_0", + "tabBarIndex":2, + "action":{ + "actionType":"openPage", + "pageType":"shop", + "requestURL":"https:\/\/mobile-exp-qa3.vzw.com\/mobile\/nsa\/nos\/gw\/launchapp\/unauthenticatedWebview", + "presentationStyle":"root" + } + }, + { + "title":"Stores", + "image":"nav_stores_white", + "tabBarIndex":3, + "action":{ + "actionType":"openPage", + "pageType":"rtlStoreJourney", + "presentationStyle":"root", + "extraParameters":{ + "fromPage":"rtlStoreJourney", + "makeFavourite":"N" + } + } + } + ] + }, + "SearchField":{ + "searchField":{ + "moleculeName":"searchTextField", + "placeholder":"What are you looking for?", + "fieldKey":"searchInput" + }, + "searchAction":{ + "actionType":"openPage", + "pageType":"search" + }, + "searchDoneAction":{ + "actionType":"openPage", + "pageType":"searchDone" + } + }, + "HabContent":{ + "habSearch":{ + "label":{ + "moleculeName":"label", + "text":"How can we help?" + }, + "image":{ + "moleculeName":"image", + "image":"hab_search_black", + "width":17, + "height":17 + }, + "image_inverted":{ + "moleculeName":"image", + "image":"hab_search_white", + "width":17, + "height":17 + }, + "action":{ + "actionType":"openURL", + "browserUrl":"https://www.verizon.com/onesearch/search?source=MFNative", + "openInWebview":true, + "showNativeNavigation":true + } + }, + "habAssistant":{ + "label":{ + "moleculeName":"label", + "text":"Chat with the Verizon Assistant" + }, + "image":{ + "moleculeName":"image", + "image":"hab_assistant_black", + "width":20, + "height":20 + }, + "image_inverted":{ + "moleculeName":"image", + "image":"hab_assistant_white", + "width":20, + "height":20 + }, + "action":{ + "actionType":"openPanel", + "panel":"right" + } + }, + "habLiveChat":{ + "label":{ + "moleculeName":"label", + "text":"Chat with an agent" + }, + "image":{ + "moleculeName":"image", + "image":"hab_live_chat_black", + "imageFormat":"gif", + "width":20, + "height":20 + }, + "image_inverted":{ + "moleculeName":"image", + "image":"hab_live_chat_white", + "imageFormat":"gif", + "width":20, + "height":20 + }, + "action":{ + "actionType":"openPanel", + "panel":"right" + } + }, + "habLiveChatNewMessages":{ + "label":{ + "moleculeName":"label", + "text":"Return to chat with an agent" + }, + "image":{ + "moleculeName":"image", + "image":"hab_live_chat_newmessage_black", + "imageFormat":"gif", + "width":20, + "height":20 + }, + "image_inverted":{ + "moleculeName":"image", + "image":"hab_live_chat_newmessage_white", + "imageFormat":"gif", + "width":20, + "height":20 + }, + "action":{ + "actionType":"openPanel", + "panel":"right" + } + } + }, + "SavedCart":{ + "ButtonMap":{ + "PrimaryButton":{ + "actionType":"openPage", + "pageType":"cart" + } + }, + "itemCount":0, + "IS_SHARED_CART":true + }, + "webParams":{ + "mvaServerDomainUrl":"https://mobile-exp-qa3.vzw.com", + "lob":"vzp", + "isTabBarFlowAllowed":"true" + } + }, + "PageMap":{ + "shop":{ + "pageType":"shop", + "template":"webView", + "browserUrl":"https:\/\/vzwqa3.verizonwireless.com\/sales\/next\/shop.html?isShopFlow=true&entrypoint=tabbar&isProspect=true", + "cache":true, + "tabBarIndex":1, + "navigationBar":{ + "line":{ + "moleculeName":"line", + "type":"none" + }, + "moleculeName":"navigationBar", + "additionalLeftButtons":[ + { + "accessibilityText":"Verizon logo, tap anytime to scroll to top of page", + "moleculeName":"navigationImageButton", + "image":"nav_vz_mark", + "imageRenderingMode":"alwaysOriginal", + "action":{ + "analyticsData":{ + "vzdl.page.linkName":"global black bar nav: vz icon" + }, + "actionType":"scrollToTop" + } + } + ], + "additionalRightButtons":[ + { + "moleculeName":"navigationLabelButton", + "title":"Sign in", + "action":{ + "hideCloseButton":false, + "appContext":"mobileFirstSS", + "analyticsData":{ + "vzdl.page.id":"prospectTrailWelcome", + "vzdl.target.engagement.intent":"customer sign in", + "vzdl.page.displayChannel":"MVA", + "vzdl.page.linkName":"I'm a customer", + "vzdl.page.name":"prospectTrailWelcome" + }, + "requestURL":"https:\/\/mobile-exp.vzw.com\/mobile\/nsa\/nos\/gw\/launchapp\/oauthSignIn?", + "extraParameters":{ + "oAuthLaunchAppFlow":"Y" + }, + "disableNativeAction":false, + "customUserAgent":"MY_VZW_APP;IOS;16.3.1;iPhone15,2;10.5.0;VZW-MFA-IOS", + "openInWebview":true, + "disableOfflineDevice":false, + "hideUrl":false, + "actionType":"openPage", + "pageType":"userSignIn", + "presentationStyle":"root", + "isSelected":false, + "openOauthWebView":false, + "hideWebNavigation":false, + "selected":false + } + } + ], + "style":"dark" + } + }, + "cart":{ + "pageType":"cart", + "template":"webView", + "browserUrl":"https://www.verizon.com/sales/next/expresscheckout.html?pageName=cart&fromMVA=true&preConfigCart=true&isShopFlow=true&entrypoint=carticon", + "tabBarHidden":true, + "navigationBar":{ + "moleculeName":"navigationBar", + "style":"light" + } + }, + "deals":{ + "pageType":"deals", + "template":"webView", + "browserUrl":"https://www.verizon.com/deals", + "tabBarHidden":true, + "navigationBar":{ + "moleculeName":"navigationBar", + "style":"light" + } + }, + "smartphones":{ + "pageType":"smartphones", + "template":"webView", + "tabBarHidden":true, + "browserUrl":"https://www.verizon.com/smartphones", + "navigationBar":{ + "moleculeName":"navigationBar", + "style":"light" + } + }, + "plans":{ + "pageType":"plans", + "template":"webView", + "tabBarHidden":true, + "browserUrl":"https://www.verizon.com/plans", + "navigationBar":{ + "moleculeName":"navigationBar", + "style":"light" + } + }, + "coverage":{ + "pageType":"coverage", + "template":"webView", + "tabBarHidden":true, + "browserUrl":"https://www.verizon.com/coverage-map", + "navigationBar":{ + "moleculeName":"navigationBar", + "style":"light" + } + }, + "home":{ + "pageType":"home", + "template":"webView", + "tabBarHidden":true, + "browserUrl":"https://www.verizon.com/home", + "backgroundColor":"black", + "navigationBar":{ + "moleculeName":"navigationBar", + "style":"light" + } + }, + "homeavailability":{ + "pageType":"homeavailability", + "template":"webView", + "tabBarHidden":true, + "backgroundColor":"black", + "browserUrl":"https://www.verizon.com/home#checkAvailability", + "navigationBar":{ + "moleculeName":"navigationBar", + "style":"light" + } + }, + "legal":{ + "pageType":"legal", + "template":"webView", + "tabBarHidden":true, + "browserUrl":"https://www.verizon.com/about/terms-conditions/overview", + "navigationBar":{ + "moleculeName":"navigationBar", + "style":"light" + } + }, + "feedback":{ + "pageType":"feedback", + "template":"webView", + "tabBarHidden":true, + "browserUrl":"https://www.verizon.com/about/terms-conditions/overview", + "navigationBar":{ + "moleculeName":"navigationBar", + "style":"light" + } + }, + "preowned":{ + "pageType":"preowned", + "template":"webView", + "tabBarHidden":true, + "browserUrl":"https://www.verizon.com/certified-pre-owned", + "navigationBar":{ + "moleculeName":"navigationBar", + "style":"light" + } + }, + "tablets":{ + "pageType":"tablets", + "template":"webView", + "tabBarHidden":true, + "browserUrl":"https://www.verizon.com/tablets", + "navigationBar":{ + "moleculeName":"navigationBar", + "style":"light" + } + }, + "watches":{ + "pageType":"watches", + "template":"webView", + "tabBarHidden":true, + "browserUrl":"https://www.verizon.com/connected-devices", + "navigationBar":{ + "moleculeName":"navigationBar", + "style":"light" + } + }, + "hotspots":{ + "pageType":"hotspots", + "template":"webView", + "tabBarHidden":true, + "browserUrl":"https://www.verizon.com/internet-devices", + "navigationBar":{ + "moleculeName":"navigationBar", + "style":"light" + } + }, + "accessories":{ + "pageType":"accessories", + "template":"webView", + "tabBarHidden":true, + "browserUrl":"https://www.verizon.com/products", + "navigationBar":{ + "moleculeName":"navigationBar", + "style":"light" + } + }, + "tradein":{ + "pageType":"tradein", + "template":"webView", + "tabBarHidden":true, + "browserUrl":"https://www.verizon.com/trade-in", + "navigationBar":{ + "moleculeName":"navigationBar", + "style":"light" + } + } + } +} diff --git a/JSONCreator_iOS/JSONCreator/JSON/Samples/TabsSample.json b/JSONCreator_iOS/JSONCreator/JSON/Samples/TabsSample.json index 92caec3..fbbec2d 100644 --- a/JSONCreator_iOS/JSONCreator/JSON/Samples/TabsSample.json +++ b/JSONCreator_iOS/JSONCreator/JSON/Samples/TabsSample.json @@ -49,6 +49,7 @@ "moleculeName": "tabsListItem", "tabs": { "moleculeName": "tabs", + "borderLine": false, "tabs": [{ "label":{ "moleculeName": "label", diff --git a/JSONCreator_iOS/JSONCreator/JSON/Samples/TileleListSample.json b/JSONCreator_iOS/JSONCreator/JSON/Samples/TileleListSample.json index 4e56264..c049532 100644 --- a/JSONCreator_iOS/JSONCreator/JSON/Samples/TileleListSample.json +++ b/JSONCreator_iOS/JSONCreator/JSON/Samples/TileleListSample.json @@ -12,7 +12,9 @@ "size": "medium" }, "moleculeName": "tilelet", + "color": "stone", "subTitle": { + "textColor": "" "text": "You are enrolled in Auto Pay & paper-free billing." }, "title": { @@ -20,91 +22,124 @@ }, "action": { "actionType": "openPage", - "analyticsData": { - "vzdl.page.displayChannel": "mva", - "vzwi.mvmapp.pageTypeLink": "settingsLanding|Auto Pay discount", - "vzdl.page.id": "settingslanding", - "vzdl.page.linkName": "Auto Pay discount", - "vzdl.page.sourceChannel": "mva", - "vzdl.page.name": "settings landing" - }, "pageType": "managePmts", "presentationStyle": "push", - "requestURL": "https://mobile-exp-qa2.vzw.com/mobile/nsa/nos/gw/launchapp/l2/webview", - "extraParameters": { - "pageTitle": "Auto Pay discount", - "screenHeading": "Auto Pay discount", - "browserUrl": "https://vzwqa2.verizonwireless.com/digital/nsa/secure/ui/payment/settings#/enrollAandP", - "locale": "EN", - "flowName": "accountsettings" - }, "title": "Auto Pay discount" } } }, + { + "moleculeName": "listItem", + "molecule": { + "moleculeName": "buttonGroup", + "childWidthPercentage": 50, + "buttons": [ { - "moleculeName":"listItem", - "molecule": { - "moleculeName": "twoButtonView", - "primaryButton": { - "moleculeName": "button", - "title": "Edit", - "groupName": "default", - "action": { - "actionType": "openPage", - "pageType": "updateProfile", - "extraParameters": { - "from": "none" + "moleculeName": "button", + "title": "Cancel", + "style": "secondary", + "groupName": "default", + "action": { + "actionType": "openPage", + "pageType": "updateProfile", + "extraParameters": { + "from": "none" + } + }, + "presentationStyle": "push" }, - "presentationStyle": "push" + { + "moleculeName": "button", + "title": "Submit", + "style": "primary", + "groupName": "default", + "action": { + "actionType": "openPage", + "pageType": "updateProfile", + "extraParameters": { + "from": "none" + }, + "presentationStyle": "push" + } + } + ] + } + }, + { + "moleculeName": "listItem", + "molecule": { + "moleculeName": "tileContainer", + "height": 300, + "width": 200, + "color": "black", + "backgroundEffect": { + "type": "gradient", + "firstColor": "#148B8E", + "secondColor": "#FB835B" + } + } + }, + { + "moleculeName": "listItem", + "molecule": { + "moleculeName": "notification", + "headline": { + "moleculeName": "label", + "text": "Headline" } } - } - },{ - "moleculeName":"listItem", + }, + { + "moleculeName": "listItem", "molecule": { - "moleculeName": "label", - "text": "afa\ndasfdsa\nadfadfda\nasadfsafa\nafsafsa\nafsadfas\nadffafaf" + "moleculeName": "badgeIndicator", + "inverted": false, + "number": 23, + "fillColor": "green", + "borderColorLight": "#148b8e", + "borderColorDark": "#fb835b", + "kind": "numbered", + "maximumDigits": "two", + "size": "small", + "leadingCharacter": "+", + "trailingText": "/year" + } - },{ - "moleculeName":"listItem", + }, + { + "moleculeName": "listItem", "molecule": { - "moleculeName": "label", - "text": "afa\ndasfdsa\nadfadfda\nasadfsafa\nafsafsa\nafsadfas\nadffafaf" + "moleculeName": "buttonIcon", + "iconName": "right-caret-bold", + "showBadgeIndicator": true, + "action": { + "actionType": "noop" + }, + "badgeIndicator": { + "moleculeName": "badgeIndicator", + "number": 23, + "kind": "numbered", + "maximumDigits": "two", + "size": "small" + } } - },{ - "moleculeName":"listItem", + }, + { + "moleculeName": "listItem", "molecule": { - "moleculeName": "label", - "text": "afa\ndasfdsa\nadfadfda\nasadfsafa\nafsafsa\nafsadfas\nadffafaf\ndafsdssfafs" - } - },{ - "moleculeName":"listItem", - "molecule": { - "moleculeName": "label", - "text": "afa\ndasfdsa\nadfadfda\nasadfsafa\nafsafsa\nafsadfas\nadffafaf\n\nadsfa\nadfs" - } - },{ - "moleculeName":"listItem", - "molecule": { - "moleculeName": "label", - "text": "afa\ndasfdsa\nadfadfda\nasadfsafa\nafsafsa\nafsadfas\nadffafafttttt" - } - },{ - "moleculeName":"listItem", - "molecule": { - "moleculeName": "label", - "text": "afa\ndasfdsa\nadfadfda\nasadfsafa\nafsafsa\nafsadfas\nadffafaf\n\nadsfa\nadfs" - } - },{ - "moleculeName":"listItem", - "molecule": { - "moleculeName": "label", - "text": "afa\ndasfdsa\nadfadfda\nasadfsafa\nafsafsa\nafsadfas\nadffafafttttt" + "moleculeName": "imageButton", + "image": { + "moleculeName": "image", + "image": "externalLink", + "height": 20, + "width": 20 + }, + "action": { + "actionType": "noop" + } } } ], - "middle": { - } + "middle": {} } } diff --git a/JSONCreator_iOS/JSONCreator/JSON/Samples/TopNotificiation.json b/JSONCreator_iOS/JSONCreator/JSON/Samples/TopNotificiation.json index 8662a66..779b11f 100644 --- a/JSONCreator_iOS/JSONCreator/JSON/Samples/TopNotificiation.json +++ b/JSONCreator_iOS/JSONCreator/JSON/Samples/TopNotificiation.json @@ -1,46 +1,98 @@ { - "ResponseInfo" : { - "code" : "00000", - "type" : "Success" + "ResponseInfo": { + "code": "00000", + "type": "Success" + }, + "TopNotification": { + "type": "testing", + "molecule": { + "moleculeName": "collapsableNotification", + "style": "information", + "headline": { + "moleculeName": "label", + "text": "headline" + }, + "body": { + "moleculeName": "label", + "text": "body" + }, + "button": { + "moleculeName": "button", + "title": "button", + "action": { + "actionType": "noop" + } + }, + "secondaryButton": { + "moleculeName": "button", + "title": "secondary button", + "action": { + "actionType": "noop" + } + }, + "topLabel": { + "moleculeName": "label", + "text": "This is the top label" + }, + "topAction": { + "actionType": "noop" + } + } + }, + "Page": { + "pageType": "x", + "template": "stack", + "header": { + "moleculeName": "headerH2", + "headlineBody": { + "moleculeName": "headlineBody", + "headline": { + "moleculeName": "label", + "text": "Top Notification Testing!" + } + } }, - "TopNotification": { - "type": "testing", - "molecule": { - "moleculeName": "notification", - "style": "warning", + "stack": { + "moleculeName": "stack", + "molecules": [ + { + "moleculeName": "stackItem", + "horizontalAlignment": "leading", + "molecule": { + "moleculeName": "collapsableNotification", + "style": "information", "headline": { - "moleculeName": "label", - "text": "headline" + "moleculeName": "label", + "text": "headline" }, "body": { - "moleculeName": "label", - "text": "body" + "moleculeName": "label", + "text": "body" }, "button": { - "moleculeName": "button", - "title": "button", - "action": { - "actionType": "noop" - } + "moleculeName": "button", + "title": "button", + "action": { + "actionType": "noop" + } + }, + "secondaryButton": { + "moleculeName": "button", + "title": "secondary button", + "action": { + "actionType": "noop" + } + }, + "topLabel": { + "moleculeName": "label", + "text": "body" + }, + "topAction": { + "actionType": "noop" } + } } - }, - "Page": { - "pageType":"x", - "template":"stack", - "header": { - "moleculeName": "headerH2", - "headlineBody": { - "moleculeName": "headlineBody", - "headline":{ - "moleculeName": "label", - "text": "Top Notification Testing!" - } - } - }, - "stack": { - "moleculeName": "stack", - "molecules": [] - } + ] } + } } diff --git a/JSONCreator_iOS/JSONCreator/JSON/Samples/_HeaderUpdate.json b/JSONCreator_iOS/JSONCreator/JSON/Samples/_HeaderUpdate.json new file mode 100644 index 0000000..8d79015 --- /dev/null +++ b/JSONCreator_iOS/JSONCreator/JSON/Samples/_HeaderUpdate.json @@ -0,0 +1,846 @@ +{ + "ResponseInfo": { + "locale": "EN", + "type": "Success", + "server": "loghost-mf_postpayss01", + "buildNumber": "21274", + "requestId": "fe2c4084-33ef-4c78-b014-ead8f82400ca", + "mdn": "6055534870", + "appSessionExtended": true, + "code": "00000", + "message": "0", + "userMessage": "0", + "topAlertTime": 0 + }, + "Page": { + "template": "modalStack", + "backgroundColor": "#000000", + "topPadding": 0, + "bottomPadding": 0, + "leftPadding": 0, + "rightPadding": 0, + "cache": false, + "analyticsData": {}, + "navigationBar": { + "moleculeName": "navigationBar", + "tintColor": "#FFFFFF" + }, + "stack": { + "moleculeName": "stack", + "useVerticalMargins": true, + "useHorizontalMargins": true, + "topPadding": 0, + "bottomPadding": 0, + "leftPadding": 0, + "rightPadding": 0, + "molecules": [ + { + "moleculeName": "stackItem", + "spacing": 60, + "molecule": { + "moleculeName": "carousel", + "loop": false, + "pagingMolecule": { + "moleculeName": "numericCarouselIndicator", + "position": -20, + "inverted": true + }, + "molecules": [ + { + "moleculeName": "carouselItem", + "topPadding": 0, + "bottomPadding": 0, + "leftPadding": 0, + "rightPadding": 0, + "molecule": { + "moleculeName": "stack", + "verticalAlignment": "fill", + "horizontalAlignment": "fill", + "backgroundColor": "#000000", + "molecules": [ + { + "moleculeName": "stackItem", + "verticalAlignment": "fill", + "horizontalAlignment": "fill", + "backgroundColor": "#EE0000", + "molecule": { + "verticalAlignment": "center", + "horizontalAlignment": "leading", + "molecule": { + "fontStyle": "RegularTitleLarge", + "textColor": "#ffffff", + "moleculeName": "label", + "animationEnabled": true, + "text": "Mr. Higgins,\nLet’s take a look back at 2023 on Verizon.", + "attributes" : [ + { + "length" : 42, + "style" : "BoldFeatureXSmall", + "type" : "font", + "location" : 13 + } + ] + }, + "moleculeName": "bgImageContainer", + "image": { + "moleculeName": "image", + "image": "https://assets.verizon.com/is/content/verizonqa/GIF1", + "imageFormat": "gif" + } + } + } + ] + } + }, + { + "moleculeName": "carouselItem", + "topPadding": 0, + "bottomPadding": 0, + "leftPadding": 0, + "rightPadding": 0, + "molecule": { + "moleculeName": "stack", + "spacing": 0, + "molecules": [ + { + "spacing": 0, + "moleculeName": "stackItem", + "verticalAlignment": "fill", + "horizontalAlignment": "fill", + "molecule": { + "moleculeName": "stack", + "spacing": 0, + "axis": "horizontal", + "molecules": [ + { + "moleculeName": "stackItem", + "verticalAlignment": "fill", + "horizontalAlignment": "fill", + "percent": 80, + "backgroundColor": "#EE0000", + "molecule": { + "verticalAlignment": "leading", + "molecule": { + "fontStyle": "BoldTitleSmall", + "textColor": "#FFFFFF", + "moleculeName": "label", + "text": "Your Personality" + }, + "moleculeName": "bgImageContainer", + "topPadding": 12, + "bottomPadding": 12, + "image": { + "moleculeName": "image", + "image": "https://assets.verizon.com/is/image/verizonqa/audio" + } + } + }, + { + "moleculeName": "stackItem", + "verticalAlignment": "fill", + "horizontalAlignment": "fill", + "percent": 20, + "backgroundColor": "#000000", + "molecule": { + "moleculeName": "image", + "image": "https://ss7.vzw.com/is/content/VerizonWireless/B(lCropped%20Animation)?$defaultscale$", + "imageFormat": "gif" + } + } + ] + } + }, + { + "moleculeName": "stackItem", + "verticalAlignment": "center", + "horizontalAlignment": "center", + "backgroundColor": "#000000", + "percent": 55, + "molecule": { + "moleculeName": "stack", + "topPadding": 10, + "bottomPadding": 10, + "leftPadding": 10, + "rightPadding": 10, + "molecules": [ + { + "moleculeName": "stackItem", + "verticalAlignment": "leading", + "horizontalAlignment": "leading", + "molecule": { + "fontStyle": "RegularTitleLarge", + "textColor": "#ffffff", + "moleculeName": "label", + "text": "Based on your usage, looks like you are a" + } + }, + { + "moleculeName": "stackItem", + "verticalAlignment": "leading", + "horizontalAlignment": "leading", + "molecule": { + "fontStyle": "BoldFeatureXSmall", + "textColor": "#ffffff", + "moleculeName": "label", + "animationEnabled": true, + "text": "Sonic Audiophile" + } + } + ] + } + } + ] + } + }, + { + "moleculeName": "carouselItem", + "topPadding": 0, + "bottomPadding": 0, + "leftPadding": 0, + "rightPadding": 0, + "molecule": { + "moleculeName": "stack", + "spacing": 0, + "molecules": [ + { + "moleculeName": "stackItem", + "verticalAlignment": "fill", + "horizontalAlignment": "fill", + "spacing": 0, + "molecule": { + "moleculeName": "stack", + "spacing": 0, + "axis": "horizontal", + "molecules": [ + { + "backgroundColor": "#000000", + "molecule": { + "verticalAlignment": "leading", + "molecule": { + "fontStyle": "BoldTitleSmall", + "textColor": "#ffffff", + "moleculeName": "label", + "text": "Your Personality" + }, + "moleculeName": "bgImageContainer", + "image": { + "moleculeName": "image", + "image": "https://assets.verizon.com/is/image/verizonqa/gamer" + }, + "topPadding": 12, + "bottomPadding": 12 + }, + "moleculeName": "stackItem", + "verticalAlignment": "fill", + "percent": 80, + "horizontalAlignment": "fill" + }, + { + "backgroundColor": "#000000", + "molecule": { + "moleculeName": "image", + "image": "https://ss7.vzw.com/is/content/VerizonWireless/B(lCropped%20Animation)?$defaultscale$", + "imageFormat": "gif" + }, + "moleculeName": "stackItem", + "verticalAlignment": "fill", + "percent": 20, + "horizontalAlignment": "fill" + } + ] + } + }, + { + "moleculeName": "stackItem", + "verticalAlignment": "center", + "horizontalAlignment": "center", + "percent": 55, + "backgroundColor": "#EE0000", + "molecule": { + "moleculeName": "stack", + "topPadding": 10, + "bottomPadding": 10, + "leftPadding": 10, + "rightPadding": 10, + "molecules": [ + { + "moleculeName": "stackItem", + "verticalAlignment": "leading", + "horizontalAlignment": "leading", + "molecule": { + "fontStyle": "RegularTitleLarge", + "textColor": "#ffffff", + "moleculeName": "label", + "text": "Based on your usage, looks like you are a" + } + }, + { + "moleculeName": "stackItem", + "verticalAlignment": "leading", + "horizontalAlignment": "leading", + "molecule": { + "fontStyle": "BoldFeatureXSmall", + "textColor": "#ffffff", + "moleculeName": "label", + "animationEnabled": true, + "text": "Exceptional Gamer" + } + } + ] + } + } + ] + } + }, + { + "moleculeName": "carouselItem", + "topPadding": 0, + "bottomPadding": 0, + "leftPadding": 0, + "rightPadding": 0, + "molecule": { + "moleculeName": "stack", + "spacing": 0, + "molecules": [ + { + "moleculeName": "stackItem", + "verticalAlignment": "fill", + "horizontalAlignment": "fill", + "spacing": 0, + "molecule": { + "moleculeName": "stack", + "spacing": 0, + "axis": "horizontal", + "molecules": [ + { + "backgroundColor": "#000000", + "molecule": { + "verticalAlignment": "leading", + "molecule": { + "fontStyle": "BoldTitleSmall", + "textColor": "#ffffff", + "moleculeName": "label", + "text": "Locations" + }, + "moleculeName": "bgImageContainer", + "image": { + "moleculeName": "image", + "image": "https://assets.verizon.com/is/image/verizonqa/location-1" + }, + "topPadding": 12, + "bottomPadding": 12 + }, + "moleculeName": "stackItem", + "verticalAlignment": "fill", + "percent": 80, + "horizontalAlignment": "fill" + }, + { + "backgroundColor": "#000000", + "molecule": { + "moleculeName": "image", + "image": "https://ss7.vzw.com/is/content/VerizonWireless/B(lCropped%20Animation)?$defaultscale$", + "imageFormat": "gif" + }, + "moleculeName": "stackItem", + "verticalAlignment": "fill", + "percent": 20, + "horizontalAlignment": "fill" + } + ] + } + }, + { + "moleculeName": "stackItem", + "verticalAlignment": "center", + "horizontalAlignment": "center", + "percent": 55, + "backgroundColor": "#FFFFFF", + "molecule": { + "moleculeName": "stack", + "topPadding": 10, + "bottomPadding": 10, + "leftPadding": 10, + "rightPadding": 10, + "molecules": [ + { + "moleculeName": "stackItem", + "verticalAlignment": "leading", + "horizontalAlignment": "leading", + "molecule": { + "fontStyle": "BoldTitleXLarge", + "textColor": "#000000", + "moleculeName": "label", + "attributes": [ + { + "textColor": "#D52B1E", + "length": 31, + "type": "color", + "location": 30 + } + ], + "text": "You ventured into the unknown, connecting with foreign lands." + } + }, + { + "moleculeName": "stackItem", + "verticalAlignment": "fill", + "horizontalAlignment": "fill", + "molecule": { + "axis": "horizontal", + "moleculeName": "stack", + "horizontalAlignment": "fill", + "molecules": [ + { + "moleculeName": "stackItem", + "verticalAlignment": "trailing", + "horizontalAlignment": "leading", + "percent": 35, + "molecule": { + "moleculeName": "label", + "text": "International locations visited", + "fontStyle": "RegularTitleSmall" + } + }, + { + "moleculeName": "stackItem", + "verticalAlignment": "trailing", + "horizontalAlignment": "trailing", + "percent": 65, + "molecule": { + "moleculeName": "label", + "text": "6", + "fontStyle": "BoldTitle2XLarge" + } + } + ] + } + }, + { + "moleculeName": "stackItem", + "molecule": { + "moleculeName": "line", + "type": "heavy" + } + } + ] + } + } + ] + } + }, + { + "moleculeName": "carouselItem", + "topPadding": 0, + "bottomPadding": 0, + "leftPadding": 0, + "rightPadding": 0, + "molecule": { + "moleculeName": "stack", + "spacing": 0, + "molecules": [ + { + "moleculeName": "stackItem", + "verticalAlignment": "fill", + "horizontalAlignment": "fill", + "spacing": 0, + "molecule": { + "moleculeName": "bgImageContainer", + "verticalAlignment": "fill", + "topPadding": 12, + "bottomPadding": 12, + "molecule": { + "moleculeName": "stack", + "verticalAlignment": "fill", + "horizontalAlignment": "fill", + "topPadding": 10, + "bottomPadding": 10, + "leftPadding": 10, + "rightPadding": 10, + "molecules": [ + { + "moleculeName": "stackItem", + "percent": 30, + "verticalAlignment": "leading", + "horizontalAlignment": "leading", + "molecule": { + "fontStyle": "BoldTitleSmall", + "textColor": "#ffffff", + "moleculeName": "label", + "text": "Devices" + } + }, + { + "moleculeName": "stackItem", + "percent": 30, + "verticalAlignment": "trailing", + "horizontalAlignment": "leading", + "molecule": { + "fontStyle": "BoldTitleXLarge", + "textColor": "#ffffff", + "moleculeName": "label", + "text": "Your devices added during 2023" + } + } + ] + }, + "image": { + "moleculeName": "image", + "image": "https://assets.verizon.com/is/image/verizonqa/devices" + } + } + }, + { + "moleculeName": "stackItem", + "verticalAlignment": "center", + "horizontalAlignment": "center", + "percent": 55, + "backgroundColor": "#000000", + "molecule": { + "moleculeName": "stack", + "topPadding": 10, + "bottomPadding": 10, + "leftPadding": 10, + "rightPadding": 10, + "molecules": [ + { + "moleculeName": "stackItem", + "verticalAlignment": "fill", + "horizontalAlignment": "fill", + "molecule": { + "moleculeName": "image", + "image": "https://assets.verizon.com/is/image/verizonqa/deviceasset" + } + } + ] + } + } + ] + } + }, + { + "moleculeName": "carouselItem", + "topPadding": 0, + "bottomPadding": 0, + "leftPadding": 0, + "rightPadding": 0, + "molecule": { + "moleculeName": "stack", + "spacing": 0, + "molecules": [ + { + "moleculeName": "stackItem", + "verticalAlignment": "fill", + "horizontalAlignment": "fill", + "spacing": 0, + "molecule": { + "moleculeName": "bgImageContainer", + "verticalAlignment": "fill", + "topPadding": 12, + "bottomPadding": 12, + "molecule": { + "moleculeName": "stack", + "verticalAlignment": "fill", + "horizontalAlignment": "fill", + "topPadding": 10, + "bottomPadding": 10, + "leftPadding": 10, + "rightPadding": 10, + "molecules": [ + { + "moleculeName": "stackItem", + "verticalAlignment": "leading", + "horizontalAlignment": "leading", + "molecule": { + "fontStyle": "BoldTitleSmall", + "textColor": "#ffffff", + "moleculeName": "label", + "text": "Perks" + } + }, + { + "moleculeName": "stackItem", + "verticalAlignment": "trailing", + "horizontalAlignment": "leading", + "molecule": { + "fontStyle": "BoldTitleXLarge", + "textColor": "#ffffff", + "moleculeName": "label", + "text": "During 2023 you added the following perks" + } + } + ] + }, + "image": { + "moleculeName": "image", + "image": "https://assets.verizon.com/is/image/verizonqa/perks" + } + } + }, + { + "moleculeName": "stackItem", + "verticalAlignment": "center", + "horizontalAlignment": "center", + "percent": 55, + "backgroundColor": "#FFFFFF", + "molecule": { + "moleculeName": "stack", + "topPadding": 10, + "bottomPadding": 10, + "leftPadding": 10, + "rightPadding": 10, + "molecules": [ + { + "moleculeName": "stackItem", + "verticalAlignment": "fill", + "horizontalAlignment": "fill", + "molecule": { + "moleculeName": "image", + "image": "https://assets.verizon.com/is/image/verizonqa/perksasset" + } + } + ] + } + } + ] + } + }, + { + "moleculeName": "carouselItem", + "topPadding": 0, + "bottomPadding": 0, + "leftPadding": 0, + "rightPadding": 0, + "molecule": { + "moleculeName": "stack", + "spacing": 0, + "molecules": [ + { + "moleculeName": "stackItem", + "verticalAlignment": "fill", + "horizontalAlignment": "fill", + "spacing": 0, + "molecule": { + "moleculeName": "stack", + "spacing": 0, + "axis": "horizontal", + "molecules": [ + { + "backgroundColor": "#000000", + "molecule": { + "verticalAlignment": "leading", + "molecule": { + "fontStyle": "BoldTitleSmall", + "textColor": "#ffffff", + "moleculeName": "label", + "text": "Plan savings" + }, + "moleculeName": "bgImageContainer", + "image": { + "moleculeName": "image", + "image": "https://assets.verizon.com/is/image/verizonqa/plans" + }, + "topPadding": 12, + "bottomPadding": 12 + }, + "moleculeName": "stackItem", + "verticalAlignment": "fill", + "percent": 80, + "horizontalAlignment": "fill" + }, + { + "backgroundColor": "#000000", + "molecule": { + "moleculeName": "image", + "image": "https://ss7.vzw.com/is/content/VerizonWireless/B(lCropped%20Animation)?$defaultscale$", + "imageFormat": "gif" + }, + "moleculeName": "stackItem", + "verticalAlignment": "fill", + "percent": 20, + "horizontalAlignment": "fill" + } + ] + } + }, + { + "moleculeName": "stackItem", + "verticalAlignment": "center", + "horizontalAlignment": "center", + "percent": 55, + "backgroundColor": "#FFFFFF", + "molecule": { + "moleculeName": "stack", + "topPadding": 10, + "bottomPadding": 10, + "leftPadding": 10, + "rightPadding": 10, + "molecules": [ + { + "moleculeName": "stackItem", + "verticalAlignment": "leading", + "horizontalAlignment": "leading", + "molecule": { + "fontStyle": "BoldTitleXLarge", + "textColor": "#000000", + "moleculeName": "label", + "attributes": [ + { + "textColor": "#D52B1E", + "length": 14, + "type": "color", + "location": 13 + } + ], + "text": "With Verizon you have saved" + } + }, + { + "moleculeName": "stackItem", + "verticalAlignment": "fill", + "horizontalAlignment": "fill", + "molecule": { + "axis": "horizontal", + "moleculeName": "stack", + "horizontalAlignment": "fill", + "molecules": [ + { + "moleculeName": "stackItem", + "verticalAlignment": "trailing", + "horizontalAlignment": "leading", + "percent": 35, + "molecule": { + "moleculeName": "label", + "text": "Savings on devices, plans & perks", + "fontStyle": "RegularTitleSmall" + } + }, + { + "moleculeName": "stackItem", + "verticalAlignment": "trailing", + "horizontalAlignment": "trailing", + "percent": 65, + "molecule": { + "moleculeName": "label", + "text": "$250", + "fontStyle": "BoldTitle2XLarge" + } + } + ] + } + }, + { + "moleculeName": "stackItem", + "molecule": { + "moleculeName": "line", + "type": "heavy" + } + } + ] + } + } + ] + } + }, + { + "moleculeName": "carouselItem", + "topPadding": 0, + "bottomPadding": 0, + "leftPadding": 0, + "rightPadding": 0, + "molecule": { + "moleculeName": "stack", + "spacing": 0, + "molecules": [ + { + "moleculeName": "stackItem", + "verticalAlignment": "center", + "horizontalAlignment": "leading", + "spacing": 0, + "molecule": { + "moleculeName": "stack", + "molecules": [ + { + "moleculeName": "stackItem", + "molecule": { + "fontStyle": "RegularTitleLarge", + "textColor": "#ffffff", + "moleculeName": "label", + "text": "Mr. Higgins,\nThank you for being with us." + } + }, + { + "moleculeName": "stackItem", + "molecule": { + "fontStyle": "BoldTitle2XLarge", + "textColor": "#ffffff", + "moleculeName": "label", + "text": "Keep the beat going with this gift." + } + } + ] + } + }, + { + "moleculeName": "stackItem", + "verticalAlignment": "leading", + "horizontalAlignment": "fill", + "percent": 55, + "backgroundColor": "#FFFFFF", + "molecule": { + "moleculeName": "stack", + "topPadding": 10, + "bottomPadding": 10, + "leftPadding": 10, + "rightPadding": 10, + "molecules": [ + { + "moleculeName": "stackItem", + "verticalAlignment": "fill", + "horizontalAlignment": "fill", + "molecule": { + "moleculeName": "image", + "image": "https://assets.verizon.com/is/image/verizonqa/offer" + } + }, + { + "moleculeName": "stackItem", + "verticalAlignment": "center", + "horizontalAlignment": "center", + "backgroundColor": "#000000", + "molecule": { + "moleculeName":"twoButtonView", + "primaryButton":{ + "moleculeName": "button", + "inverted": true, + "action": { + "actionType": "openURL", + "openInWebview": true, + "browserUrl": "https://www.verizon.com/products/beats-studio-pro-wireless-headphones/?sku=sku6002628" + }, + "title":"Get my gift" + }, + "secondaryButton":{ + "moleculeName": "button", + "inverted": true, + "action": { + "actionType": "back" + }, + "title":"Maybe later" + } + } + } + ] + } + } + ] + } + } + ] + } + } + ] + }, + "pageType": "yearInReview" + } +} diff --git a/JSONCreator_iOS/JSONCreator/JSON/Samples/_VDS-Button.json b/JSONCreator_iOS/JSONCreator/JSON/Samples/_VDS-Button.json new file mode 100644 index 0000000..12bc786 --- /dev/null +++ b/JSONCreator_iOS/JSONCreator/JSON/Samples/_VDS-Button.json @@ -0,0 +1,73 @@ +{ + "ResponseInfo" : { + "type" : "Success", + "code" : "00000" + }, + "Page" : { + "footer" : { + }, + "molecules" : [ + { + "moleculeName" : "listItem", + "molecule" : { + "moleculeName" : "label", + "text" : "555.555.5555\n\nBeyond Unlimited\n27.50\/mo$55.00\/mo\n\nView Plan Details", + "attributes" : [ + { + "length" : 16, + "style" : "B3", + "type" : "font", + "location" : 14 + } + ] + } + } + ], + "header" : { + "moleculeName" : "header", + "molecule" : { + "moleculeName" : "stack", + "molecules" : [ + { + "moleculeName" : "stackItem", + "molecule" : { + "moleculeName" : "titleLockup", + "title" : { + "moleculeName" : "label", + "text" : "headline", + "fontStyle" : "RegularTitle2XLarge" + }, + "subTitle" : { + "moleculeName" : "label", + "text" : "body", + "fontStyle" : "RegularTitleMedium" + } + } + }, + { + "moleculeName" : "stackItem", + "molecule" : { + "moleculeName" : "twoButtonView", + "primaryButton" : { + "moleculeName" : "button", + "title" : "primary", + "action" : { + "actionType" : "noop" + } + }, + "secondaryButton" : { + "moleculeName" : "button", + "title" : "secondary", + "action" : { + "actionType" : "noop" + } + } + } + } + ] + } + }, + "template" : "list", + "pageType" : "x" + } +} diff --git a/JSONCreator_iOS/JSONCreator/JSON/Samples/callUsOptionsLanding.json b/JSONCreator_iOS/JSONCreator/JSON/Samples/callUsOptionsLanding.json new file mode 100644 index 0000000..12d6d1a --- /dev/null +++ b/JSONCreator_iOS/JSONCreator/JSON/Samples/callUsOptionsLanding.json @@ -0,0 +1,247 @@ +{ + "ResponseInfo" : { + "correlationId" : "32EB6B50-77E4-495C-90B5-2FCA8A2BC5E3", + "userMessage" : "0", + "errorMessage" : "SUCCESS", + "code" : "00", + "message" : "SUCCESS", + "type" : "Success", + "topAlertTime" : 0, + "errorCode" : "00" + }, + "Page" : { + "analyticsData" : { + "vzdl.page.id" : "callusinfo", + "vzdl.page.flow" : "contactus", + "vzdl.target.engagement.intent" : "more", + "vzdl.page.subflow" : "call us", + "vzdl.page.siteSection" : "contact us", + "vzdl.page.name" : "callusinfo" + }, + "footer" : { + "moleculeName" : "footer", + "molecule" : { + "moleculeName" : "twoButtonView", + "primaryButton" : { + "groupName" : "default", + "moleculeName" : "button", + "title" : "Call Us", + "action" : { + "actionType" : "openPage", + "analyticsData" : { + "vzdl.page.id" : "callusinfo", + "vzdl.page.name" : "callusinfo", + "vzdl.page.displayChannel" : "MVA", + "vzdl.target.engagement.intent" : "more", + "vzdl.page.sourceChannel" : "MVA" + }, + "pageType" : "callUsSubmit", + "presentationStyle" : "push", + "openInWebview" : true, + "requestURL" : "https:\/\/vzwqa2.verizonwireless.com\/digital\/nsa\/secure\/gw\/contactus\/callUsSubmit", + "showNativeNavigation" : true + } + } + } + }, + "molecules" : [ + { + "dropDown" : { + "moleculeName" : "dropDown", + "placeholder" : "Select a reason for call", + "title" : "Reason for Call", + "fieldKey" : "reason", + "type" : "text", + "options" : [ + "Bill", + "Device", + "Plan", + "Data", + "Account" + ], + "selectedIndex" : 0 + }, + "line" : { + "moleculeName" : "line", + "type" : "none" + }, + "moleculeName" : "dropDownListItem", + "bottomPadding" : 0, + "molecules" : [ + [ + { + "line" : { + "moleculeName" : "line", + "type" : "none" + }, + "topPadding" : 0, + "moleculeName" : "listItem", + "bottomPadding" : 0, + "molecule" : { + "moleculeName" : "dropDown", + "placeholder" : "Select", + "title" : "Relating to", + "fieldKey" : "subReason", + "type" : "text", + "options" : [ + "Billing Questions", + "Payment Methods", + "Pay Bill" + ], + "selectedIndex" : 0 + } + } + ], + [ + { + "line" : { + "moleculeName" : "line", + "type" : "none" + }, + "topPadding" : 0, + "moleculeName" : "listItem", + "bottomPadding" : 0, + "molecule" : { + "moleculeName" : "dropDown", + "placeholder" : "Select", + "title" : "Relating to", + "fieldKey" : "subReason", + "type" : "text", + "options" : [ + "Device Issues" + ], + "selectedIndex" : 0 + } + } + ], + [ + { + "line" : { + "moleculeName" : "line", + "type" : "none" + }, + "topPadding" : 0, + "moleculeName" : "listItem", + "bottomPadding" : 0, + "molecule" : { + "moleculeName" : "dropDown", + "placeholder" : "Select", + "title" : "Relating to", + "fieldKey" : "subReason", + "type" : "text", + "options" : [ + "Plan Questions", + "Change Plan", + "International Use" + ], + "selectedIndex" : 0 + } + } + ], + [ + + ], + [ + { + "line" : { + "moleculeName" : "line", + "type" : "none" + }, + "topPadding" : 0, + "moleculeName" : "listItem", + "bottomPadding" : 0, + "molecule" : { + "moleculeName" : "dropDown", + "placeholder" : "Select", + "title" : "Relating to", + "fieldKey" : "subReason", + "type" : "text", + "options" : [ + "Auto Pay", + "Change mobile number" + ], + "selectedIndex" : 0 + } + } + ] + ] + }, + { + "line" : { + "moleculeName" : "line", + "type" : "none" + }, + "moleculeName" : "listItem", + "useVerticalMargins" : false, + "molecule" : { + "moleculeName" : "stack", + "backgroundColor" : "#D7DFE3", + "molecules" : [ + { + "moleculeName" : "stackItem", + "molecule" : { + "moleculeName" : "stack", + "molecules" : [ + { + "moleculeName" : "stackItem", + "topPadding" : 10, + "useHorizontalMargins" : true, + "rightPadding" : 10, + "leftPadding" : 10, + "useVerticalMargins" : true, + "molecule" : { + "moleculeName" : "label", + "text" : "Information about Billing & Payments", + "fontStyle" : "BoldBodySmall" + } + }, + { + "moleculeName" : "stackItem", + "useHorizontalMargins" : true, + "rightPadding" : 10, + "leftPadding" : 10, + "useVerticalMargins" : true, + "bottomPadding" : 10, + "molecule" : { + "accessibilityText" : "Learn More about Information about Billing & Payments", + "title" : "Learn More", + "moleculeName" : "link", + "action" : { + "browserUrl" : "https:\/\/www.verizonwireless.com\/support\/billing-and-payments\/", + "actionType" : "openURL", + "openInWebview" : true, + "pageType" : "myData" + } + } + } + ] + } + } + ] + } + } + ], + "pageType" : "batchList", + "suppressPostLaunchRequests" : false, + "cache" : false, + "formRules" : [ + { + "groupName" : "default", + "rules" : [ + { + "type" : "allRequired", + "fields" : [ + "reason", + "subReason" + ] + } + ] + } + ], + "template" : "list", + "navigationBar" : { + "moleculeName" : "navigationBar", + "title" : "Call Us" + } + } +} diff --git a/JSONCreator_iOS/JSONCreator/JSON/Templates/MoleculeStackTemplate.json b/JSONCreator_iOS/JSONCreator/JSON/Templates/MoleculeStackTemplate.json index 10ffebb..6918b8a 100644 --- a/JSONCreator_iOS/JSONCreator/JSON/Templates/MoleculeStackTemplate.json +++ b/JSONCreator_iOS/JSONCreator/JSON/Templates/MoleculeStackTemplate.json @@ -14,9 +14,17 @@ }, "stack": { "moleculeName": "stack", - "molecules": [{ - - }] + "molecules": [ + { + "moleculeName": "stackItem", + "spacing": 0, + "molecule": { + "moleculeName": "label", + "text": "Verizon\nFree Trial", + "fontStyle": "BoldTitleXLarge", + "textColor": "white" + } + } ] } } } diff --git a/JSONCreator_iOS/JSONCreator/MF/ButtonWithImage.swift b/JSONCreator_iOS/JSONCreator/MF/ButtonWithImage.swift new file mode 100644 index 0000000..03d40d6 --- /dev/null +++ b/JSONCreator_iOS/JSONCreator/MF/ButtonWithImage.swift @@ -0,0 +1,80 @@ +// +// ButtonWithImage.swift +// JSONCreator +// +// Created by Matt Bruce on 9/15/23. +// Copyright © 2023 Verizon Wireless. All rights reserved. +// + +import Foundation +import MVMCoreUI +import VDS + +public class ButtonWithImage: PillButtonBase { + + public override func viewModelDidUpdate() { + super.viewModelDidUpdate() + + guard var buttonImage = MVMCoreCache.shared()?.getImageFromRegisteredBundles(viewModel.image) else { + return + } + + setImage(buttonImage, for: .normal) + semanticContentAttribute = viewModel.imagePosition == .left ? .forceLeftToRight : .forceRightToLeft + let insetAmount = Padding.OneHalf + imageEdgeInsets = UIEdgeInsets(top: 0, left: viewModel.imagePosition == .left ? -insetAmount: insetAmount, bottom: 0, right: viewModel.imagePosition == .left ? insetAmount : -insetAmount) + titleEdgeInsets = UIEdgeInsets(top: 0, left: viewModel.imagePosition == .left ? insetAmount : -insetAmount, bottom: 0, right: viewModel.imagePosition == .left ? -insetAmount : insetAmount) + contentEdgeInsets = UIEdgeInsets(top: 0, left: insetAmount, bottom: 0, right: insetAmount) + } +} + +public class ButtonWithImageModel: ButtonModel { + + public enum ImagePosition: String, Codable { + case left, right + } + + public override class var identifier: String { + "buttonWithImage" + } + + let image: String + var imagePosition: ImagePosition + + public init(with title: String, image: String, imagePosition: ImagePosition = .left, action: ActionModelProtocol) { + self.image = image + self.imagePosition = imagePosition + super.init(with: title, action: action) + } + + public init(secondaryButtonWith title: String, image: String, imagePosition: ImagePosition = .left, action: ActionModelProtocol) { + self.image = image + self.imagePosition = imagePosition + super.init(secondaryButtonWith: title, action: action) + } + + public init(primaryButtonWith title: String, image: String, imagePosition: ImagePosition = .left, action: ActionModelProtocol) { + self.image = image + self.imagePosition = imagePosition + super.init(primaryButtonWith: title, action: action) + } + + private enum CodingKeys: String, CodingKey { + case image + case imagePosition + } + + required public init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: CodingKeys.self) + image = try container.decode(String.self, forKey: .image) + imagePosition = try container.decodeIfPresent(ImagePosition.self, forKey: .imagePosition) ?? .left + try super.init(from: decoder) + } + + public override func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(image, forKey: .image) + try container.encode(imagePosition, forKey: .imagePosition) + try super.encode(to: encoder) + } +} diff --git a/Supporting Files/Artifactory/ArtifactoryItems.txt b/Supporting Files/Artifactory/ArtifactoryItems.txt index c0a24cf..f3e501d 100644 --- a/Supporting Files/Artifactory/ArtifactoryItems.txt +++ b/Supporting Files/Artifactory/ArtifactoryItems.txt @@ -1 +1 @@ -../../SharedFrameworks/VDSColorTokens.xcframework GVJV_VDS_Maven/%40vds-tokens/ios/VDSTokens.2.0.0.xcframework.zip +../../SharedFrameworks/VDSColorTokens.xcframework GVJV_VDS_Maven/%40vds-tokens/ios/VDSCoreTokens.1.0.0-alpha.8.xcframework.zip \ No newline at end of file