Mercurial > public > simoleon
changeset 179:7c4a789e51ba
add views
author | Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com> |
---|---|
date | Tue, 26 Oct 2021 18:18:36 +0200 |
parents | 1077bc0ffdbf |
children | 41f284db0c3d |
files | Simoleon.xcodeproj/project.pbxproj Simoleon/AboutView.swift Simoleon/ContentView.swift Simoleon/ConversionView.swift Simoleon/FavoritesView.swift Simoleon/Helpers/CurrencySelector.swift Simoleon/Helpers/CurrencySelectorButton.swift Simoleon/Helpers/Sidebar.swift Simoleon/Models/CurrencyModel.swift Simoleon/Resources/currencies.json |
diffstat | 10 files changed, 1460 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/Simoleon.xcodeproj/project.pbxproj Tue Oct 26 18:18:25 2021 +0200 +++ b/Simoleon.xcodeproj/project.pbxproj Tue Oct 26 18:18:36 2021 +0200 @@ -7,6 +7,14 @@ objects = { /* Begin PBXBuildFile section */ + 953B98B9272859CD00477D86 /* Sidebar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 953B98B8272859CD00477D86 /* Sidebar.swift */; }; + 953B98BB272859DE00477D86 /* ConversionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 953B98BA272859DE00477D86 /* ConversionView.swift */; }; + 953B98BD272859F000477D86 /* FavoritesView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 953B98BC272859F000477D86 /* FavoritesView.swift */; }; + 953B98BF272859FB00477D86 /* AboutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 953B98BE272859FB00477D86 /* AboutView.swift */; }; + 953B98C227285D2600477D86 /* currencies.json in Resources */ = {isa = PBXBuildFile; fileRef = 953B98C127285D2600477D86 /* currencies.json */; }; + 953B98C427285E1600477D86 /* CurrencySelector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 953B98C327285E1600477D86 /* CurrencySelector.swift */; }; + 953B98C827285FA900477D86 /* CurrencySelectorButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 953B98C727285FA900477D86 /* CurrencySelectorButton.swift */; }; + 953B98CB27285FF400477D86 /* CurrencyModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 953B98CA27285FF400477D86 /* CurrencyModel.swift */; }; 95DC5D502728176700B1EFA0 /* SimoleonApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95DC5D4F2728176700B1EFA0 /* SimoleonApp.swift */; }; 95DC5D522728176700B1EFA0 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95DC5D512728176700B1EFA0 /* ContentView.swift */; }; 95DC5D542728176800B1EFA0 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 95DC5D532728176800B1EFA0 /* Assets.xcassets */; }; @@ -37,6 +45,14 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 953B98B8272859CD00477D86 /* Sidebar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Sidebar.swift; sourceTree = "<group>"; }; + 953B98BA272859DE00477D86 /* ConversionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConversionView.swift; sourceTree = "<group>"; }; + 953B98BC272859F000477D86 /* FavoritesView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FavoritesView.swift; sourceTree = "<group>"; }; + 953B98BE272859FB00477D86 /* AboutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutView.swift; sourceTree = "<group>"; }; + 953B98C127285D2600477D86 /* currencies.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = currencies.json; sourceTree = "<group>"; }; + 953B98C327285E1600477D86 /* CurrencySelector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CurrencySelector.swift; sourceTree = "<group>"; }; + 953B98C727285FA900477D86 /* CurrencySelectorButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CurrencySelectorButton.swift; sourceTree = "<group>"; }; + 953B98CA27285FF400477D86 /* CurrencyModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CurrencyModel.swift; sourceTree = "<group>"; }; 95DC5D4C2728176700B1EFA0 /* Simoleon.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Simoleon.app; sourceTree = BUILT_PRODUCTS_DIR; }; 95DC5D4F2728176700B1EFA0 /* SimoleonApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimoleonApp.swift; sourceTree = "<group>"; }; 95DC5D512728176700B1EFA0 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; }; @@ -81,6 +97,32 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 953B98B7272859B000477D86 /* Helpers */ = { + isa = PBXGroup; + children = ( + 953B98B8272859CD00477D86 /* Sidebar.swift */, + 953B98C327285E1600477D86 /* CurrencySelector.swift */, + 953B98C727285FA900477D86 /* CurrencySelectorButton.swift */, + ); + path = Helpers; + sourceTree = "<group>"; + }; + 953B98C027285D0B00477D86 /* Resources */ = { + isa = PBXGroup; + children = ( + 953B98C127285D2600477D86 /* currencies.json */, + ); + path = Resources; + sourceTree = "<group>"; + }; + 953B98C927285FE900477D86 /* Models */ = { + isa = PBXGroup; + children = ( + 953B98CA27285FF400477D86 /* CurrencyModel.swift */, + ); + path = Models; + sourceTree = "<group>"; + }; 95DC5D432728176700B1EFA0 = { isa = PBXGroup; children = ( @@ -110,9 +152,15 @@ 95DC5D532728176800B1EFA0 /* Assets.xcassets */, 95DC5D7E272817DE00B1EFA0 /* Config.xcconfig */, 95DC5D5A2728176800B1EFA0 /* Simoleon.xcdatamodeld */, + 95DC5D582728176800B1EFA0 /* Persistence.swift */, 95DC5D4F2728176700B1EFA0 /* SimoleonApp.swift */, 95DC5D512728176700B1EFA0 /* ContentView.swift */, - 95DC5D582728176800B1EFA0 /* Persistence.swift */, + 953B98BC272859F000477D86 /* FavoritesView.swift */, + 953B98BA272859DE00477D86 /* ConversionView.swift */, + 953B98BE272859FB00477D86 /* AboutView.swift */, + 953B98B7272859B000477D86 /* Helpers */, + 953B98C027285D0B00477D86 /* Resources */, + 953B98C927285FE900477D86 /* Models */, 95DC5D552728176800B1EFA0 /* Preview Content */, ); path = Simoleon; @@ -257,6 +305,7 @@ files = ( 95DC5D572728176800B1EFA0 /* Preview Assets.xcassets in Resources */, 95DC5D542728176800B1EFA0 /* Assets.xcassets in Resources */, + 953B98C227285D2600477D86 /* currencies.json in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -281,8 +330,15 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 953B98BF272859FB00477D86 /* AboutView.swift in Sources */, + 953B98C427285E1600477D86 /* CurrencySelector.swift in Sources */, + 953B98BB272859DE00477D86 /* ConversionView.swift in Sources */, + 953B98B9272859CD00477D86 /* Sidebar.swift in Sources */, 95DC5D592728176800B1EFA0 /* Persistence.swift in Sources */, 95DC5D522728176700B1EFA0 /* ContentView.swift in Sources */, + 953B98CB27285FF400477D86 /* CurrencyModel.swift in Sources */, + 953B98BD272859F000477D86 /* FavoritesView.swift in Sources */, + 953B98C827285FA900477D86 /* CurrencySelectorButton.swift in Sources */, 95DC5D502728176700B1EFA0 /* SimoleonApp.swift in Sources */, 95DC5D5C2728176800B1EFA0 /* Simoleon.xcdatamodeld in Sources */, );
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Simoleon/AboutView.swift Tue Oct 26 18:18:36 2021 +0200 @@ -0,0 +1,20 @@ +// +// AboutView.swift +// Simoleon +// +// Created by Dennis Concepción Martín on 26/10/21. +// + +import SwiftUI + +struct AboutView: View { + var body: some View { + Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/) + } +} + +struct AboutView_Previews: PreviewProvider { + static var previews: some View { + AboutView() + } +}
--- a/Simoleon/ContentView.swift Tue Oct 26 18:18:25 2021 +0200 +++ b/Simoleon/ContentView.swift Tue Oct 26 18:18:36 2021 +0200 @@ -8,8 +8,43 @@ import SwiftUI struct ContentView: View { + @State private var tab: Tab = .convert + + private enum Tab { + case convert, favorites, settings + } + + @ViewBuilder var adjustedView: some View { + if UIDevice.current.userInterfaceIdiom == .pad { + NavigationView { + Sidebar() + ConversionView() + } + } else { + TabView(selection: $tab) { + ConversionView() + .tabItem { + Label("Convert", systemImage: "arrow.counterclockwise.circle") + } + .tag(Tab.convert) + + FavoritesView() + .tabItem { + Label("Favorites", systemImage: "star") + } + .tag(Tab.favorites) + + AboutView() + .tabItem { + Label("About", systemImage: "info.circle") + } + .tag(Tab.settings) + } + } + } + var body: some View { - Text("Hello world") + adjustedView } }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Simoleon/ConversionView.swift Tue Oct 26 18:18:36 2021 +0200 @@ -0,0 +1,20 @@ +// +// ConversionView.swift +// Simoleon +// +// Created by Dennis Concepción Martín on 26/10/21. +// + +import SwiftUI + +struct ConversionView: View { + var body: some View { + Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/) + } +} + +struct ConversionView_Previews: PreviewProvider { + static var previews: some View { + ConversionView() + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Simoleon/FavoritesView.swift Tue Oct 26 18:18:36 2021 +0200 @@ -0,0 +1,20 @@ +// +// FavoritesView.swift +// Simoleon +// +// Created by Dennis Concepción Martín on 26/10/21. +// + +import SwiftUI + +struct FavoritesView: View { + var body: some View { + Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/) + } +} + +struct FavoritesView_Previews: PreviewProvider { + static var previews: some View { + FavoritesView() + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Simoleon/Helpers/CurrencySelector.swift Tue Oct 26 18:18:36 2021 +0200 @@ -0,0 +1,29 @@ +// +// CurrencySelector.swift +// Simoleon +// +// Created by Dennis Concepción Martín on 26/10/21. +// + +import SwiftUI + +struct CurrencySelector: View { + @State private var showCurrencyList = false + @State private var selectedBaseCurrency = CurrencyModel(name: "US Dollar", code: "USD") + @State private var selectedQuoteCurrency = CurrencyModel(name: "Euro", code: "EUR") + + var body: some View { + HStack { + Button(action: { showCurrencyList = true }) { + CurrencySelectorButton(selectedCurrency: selectedBaseCurrency) + CurrencySelectorButton(selectedCurrency: selectedQuoteCurrency) + } + } + } +} + +struct CurrencySelector_Previews: PreviewProvider { + static var previews: some View { + CurrencySelector() + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Simoleon/Helpers/CurrencySelectorButton.swift Tue Oct 26 18:18:36 2021 +0200 @@ -0,0 +1,39 @@ +// +// CurrencySelectorButton.swift +// Simoleon +// +// Created by Dennis Concepción Martín on 26/10/21. +// + +import SwiftUI + +struct CurrencySelectorButton: View { + var selectedCurrency: CurrencyModel + + var body: some View { + RoundedRectangle(cornerRadius: 15) + .foregroundColor(Color(.secondarySystemBackground)) + .frame(height: 60) + .overlay( + HStack { + Image(selectedCurrency.code) + .resizable() + .aspectRatio(contentMode: .fill) + .frame(width: 35, height: 35) + .clipShape(Circle()) + + Text(selectedCurrency.code) + .foregroundColor(.primary) + .font(.headline) + } + ) + } +} + +struct CurrencySelectorButton_Previews: PreviewProvider { + static var previews: some View { + CurrencySelectorButton( + selectedCurrency: CurrencyModel(name: "US Dollar", code: "USD") + ) + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Simoleon/Helpers/Sidebar.swift Tue Oct 26 18:18:36 2021 +0200 @@ -0,0 +1,34 @@ +// +// Sidebar.swift +// Simoleon +// +// Created by Dennis Concepción Martín on 26/10/21. +// + +import SwiftUI + +struct Sidebar: View { + var body: some View { + List { + NavigationLink(destination: ConversionView()) { + Label("Convert", systemImage: "arrow.counterclockwise.circle") + } + + NavigationLink(destination: FavoritesView()) { + Label("Favorites", systemImage: "star") + } + + NavigationLink(destination: AboutView()) { + Label("About", systemImage: "info.circle") + } + } + .listStyle(SidebarListStyle()) + .navigationTitle("Categories") + } +} + +struct Sidebar_Previews: PreviewProvider { + static var previews: some View { + Sidebar() + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Simoleon/Models/CurrencyModel.swift Tue Oct 26 18:18:36 2021 +0200 @@ -0,0 +1,13 @@ +// +// CurrencyModel.swift +// Simoleon +// +// Created by Dennis Concepción Martín on 26/10/21. +// + +import Foundation + +struct CurrencyModel: Codable { + var name: String + var code: String +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Simoleon/Resources/currencies.json Tue Oct 26 18:18:36 2021 +0200 @@ -0,0 +1,1192 @@ +{ + "USD": + { + "symbol": "$", + "name": "US Dollar", + "symbol_native": "$", + "decimal_digits": 2, + "rounding": 0, + "code": "USD", + "name_plural": "US dollars" + }, + "CAD": + { + "symbol": "CA$", + "name": "Canadian Dollar", + "symbol_native": "$", + "decimal_digits": 2, + "rounding": 0, + "code": "CAD", + "name_plural": "Canadian dollars" + }, + "EUR": + { + "symbol": "€", + "name": "Euro", + "symbol_native": "€", + "decimal_digits": 2, + "rounding": 0, + "code": "EUR", + "name_plural": "euros" + }, + "AED": + { + "symbol": "AED", + "name": "United Arab Emirates Dirham", + "symbol_native": "د.إ.", + "decimal_digits": 2, + "rounding": 0, + "code": "AED", + "name_plural": "UAE dirhams" + }, + "AFN": + { + "symbol": "Af", + "name": "Afghan Afghani", + "symbol_native": "؋", + "decimal_digits": 0, + "rounding": 0, + "code": "AFN", + "name_plural": "Afghan Afghanis" + }, + "ALL": + { + "symbol": "ALL", + "name": "Albanian Lek", + "symbol_native": "Lek", + "decimal_digits": 0, + "rounding": 0, + "code": "ALL", + "name_plural": "Albanian lekë" + }, + "AMD": + { + "symbol": "AMD", + "name": "Armenian Dram", + "symbol_native": "դր.", + "decimal_digits": 0, + "rounding": 0, + "code": "AMD", + "name_plural": "Armenian drams" + }, + "ARS": + { + "symbol": "AR$", + "name": "Argentine Peso", + "symbol_native": "$", + "decimal_digits": 2, + "rounding": 0, + "code": "ARS", + "name_plural": "Argentine pesos" + }, + "AUD": + { + "symbol": "AU$", + "name": "Australian Dollar", + "symbol_native": "$", + "decimal_digits": 2, + "rounding": 0, + "code": "AUD", + "name_plural": "Australian dollars" + }, + "AZN": + { + "symbol": "man.", + "name": "Azerbaijani Manat", + "symbol_native": "ман.", + "decimal_digits": 2, + "rounding": 0, + "code": "AZN", + "name_plural": "Azerbaijani manats" + }, + "BAM": + { + "symbol": "KM", + "name": "Bosnia-Herzegovina Convertible Mark", + "symbol_native": "KM", + "decimal_digits": 2, + "rounding": 0, + "code": "BAM", + "name_plural": "Bosnia-Herzegovina convertible marks" + }, + "BDT": + { + "symbol": "Tk", + "name": "Bangladeshi Taka", + "symbol_native": "৳", + "decimal_digits": 2, + "rounding": 0, + "code": "BDT", + "name_plural": "Bangladeshi takas" + }, + "BGN": + { + "symbol": "BGN", + "name": "Bulgarian Lev", + "symbol_native": "лв.", + "decimal_digits": 2, + "rounding": 0, + "code": "BGN", + "name_plural": "Bulgarian leva" + }, + "BHD": + { + "symbol": "BD", + "name": "Bahraini Dinar", + "symbol_native": "د.ب.", + "decimal_digits": 3, + "rounding": 0, + "code": "BHD", + "name_plural": "Bahraini dinars" + }, + "BIF": + { + "symbol": "FBu", + "name": "Burundian Franc", + "symbol_native": "FBu", + "decimal_digits": 0, + "rounding": 0, + "code": "BIF", + "name_plural": "Burundian francs" + }, + "BND": + { + "symbol": "BN$", + "name": "Brunei Dollar", + "symbol_native": "$", + "decimal_digits": 2, + "rounding": 0, + "code": "BND", + "name_plural": "Brunei dollars" + }, + "BOB": + { + "symbol": "Bs", + "name": "Bolivian Boliviano", + "symbol_native": "Bs", + "decimal_digits": 2, + "rounding": 0, + "code": "BOB", + "name_plural": "Bolivian bolivianos" + }, + "BRL": + { + "symbol": "R$", + "name": "Brazilian Real", + "symbol_native": "R$", + "decimal_digits": 2, + "rounding": 0, + "code": "BRL", + "name_plural": "Brazilian reals" + }, + "BWP": + { + "symbol": "BWP", + "name": "Botswanan Pula", + "symbol_native": "P", + "decimal_digits": 2, + "rounding": 0, + "code": "BWP", + "name_plural": "Botswanan pulas" + }, + "BYN": + { + "symbol": "Br", + "name": "Belarusian Ruble", + "symbol_native": "руб.", + "decimal_digits": 2, + "rounding": 0, + "code": "BYN", + "name_plural": "Belarusian rubles" + }, + "BZD": + { + "symbol": "BZ$", + "name": "Belize Dollar", + "symbol_native": "$", + "decimal_digits": 2, + "rounding": 0, + "code": "BZD", + "name_plural": "Belize dollars" + }, + "CDF": + { + "symbol": "CDF", + "name": "Congolese Franc", + "symbol_native": "FrCD", + "decimal_digits": 2, + "rounding": 0, + "code": "CDF", + "name_plural": "Congolese francs" + }, + "CHF": + { + "symbol": "CHF", + "name": "Swiss Franc", + "symbol_native": "CHF", + "decimal_digits": 2, + "rounding": 0.05, + "code": "CHF", + "name_plural": "Swiss francs" + }, + "CLP": + { + "symbol": "CL$", + "name": "Chilean Peso", + "symbol_native": "$", + "decimal_digits": 0, + "rounding": 0, + "code": "CLP", + "name_plural": "Chilean pesos" + }, + "CNY": + { + "symbol": "CN¥", + "name": "Chinese Yuan", + "symbol_native": "CN¥", + "decimal_digits": 2, + "rounding": 0, + "code": "CNY", + "name_plural": "Chinese yuan" + }, + "COP": + { + "symbol": "CO$", + "name": "Colombian Peso", + "symbol_native": "$", + "decimal_digits": 0, + "rounding": 0, + "code": "COP", + "name_plural": "Colombian pesos" + }, + "CRC": + { + "symbol": "₡", + "name": "Costa Rican Colón", + "symbol_native": "₡", + "decimal_digits": 0, + "rounding": 0, + "code": "CRC", + "name_plural": "Costa Rican colóns" + }, + "CVE": + { + "symbol": "CV$", + "name": "Cape Verdean Escudo", + "symbol_native": "CV$", + "decimal_digits": 2, + "rounding": 0, + "code": "CVE", + "name_plural": "Cape Verdean escudos" + }, + "CZK": + { + "symbol": "Kč", + "name": "Czech Republic Koruna", + "symbol_native": "Kč", + "decimal_digits": 2, + "rounding": 0, + "code": "CZK", + "name_plural": "Czech Republic korunas" + }, + "DJF": + { + "symbol": "Fdj", + "name": "Djiboutian Franc", + "symbol_native": "Fdj", + "decimal_digits": 0, + "rounding": 0, + "code": "DJF", + "name_plural": "Djiboutian francs" + }, + "DKK": + { + "symbol": "Dkr", + "name": "Danish Krone", + "symbol_native": "kr", + "decimal_digits": 2, + "rounding": 0, + "code": "DKK", + "name_plural": "Danish kroner" + }, + "DOP": + { + "symbol": "RD$", + "name": "Dominican Peso", + "symbol_native": "RD$", + "decimal_digits": 2, + "rounding": 0, + "code": "DOP", + "name_plural": "Dominican pesos" + }, + "DZD": + { + "symbol": "DA", + "name": "Algerian Dinar", + "symbol_native": "د.ج.", + "decimal_digits": 2, + "rounding": 0, + "code": "DZD", + "name_plural": "Algerian dinars" + }, + "EEK": + { + "symbol": "Ekr", + "name": "Estonian Kroon", + "symbol_native": "kr", + "decimal_digits": 2, + "rounding": 0, + "code": "EEK", + "name_plural": "Estonian kroons" + }, + "EGP": + { + "symbol": "EGP", + "name": "Egyptian Pound", + "symbol_native": "ج.م.", + "decimal_digits": 2, + "rounding": 0, + "code": "EGP", + "name_plural": "Egyptian pounds" + }, + "ERN": + { + "symbol": "Nfk", + "name": "Eritrean Nakfa", + "symbol_native": "Nfk", + "decimal_digits": 2, + "rounding": 0, + "code": "ERN", + "name_plural": "Eritrean nakfas" + }, + "ETB": + { + "symbol": "Br", + "name": "Ethiopian Birr", + "symbol_native": "Br", + "decimal_digits": 2, + "rounding": 0, + "code": "ETB", + "name_plural": "Ethiopian birrs" + }, + "GBP": + { + "symbol": "£", + "name": "British Pound Sterling", + "symbol_native": "£", + "decimal_digits": 2, + "rounding": 0, + "code": "GBP", + "name_plural": "British pounds sterling" + }, + "GEL": + { + "symbol": "GEL", + "name": "Georgian Lari", + "symbol_native": "GEL", + "decimal_digits": 2, + "rounding": 0, + "code": "GEL", + "name_plural": "Georgian laris" + }, + "GHS": + { + "symbol": "GH₵", + "name": "Ghanaian Cedi", + "symbol_native": "GH₵", + "decimal_digits": 2, + "rounding": 0, + "code": "GHS", + "name_plural": "Ghanaian cedis" + }, + "GNF": + { + "symbol": "FG", + "name": "Guinean Franc", + "symbol_native": "FG", + "decimal_digits": 0, + "rounding": 0, + "code": "GNF", + "name_plural": "Guinean francs" + }, + "GTQ": + { + "symbol": "GTQ", + "name": "Guatemalan Quetzal", + "symbol_native": "Q", + "decimal_digits": 2, + "rounding": 0, + "code": "GTQ", + "name_plural": "Guatemalan quetzals" + }, + "HKD": + { + "symbol": "HK$", + "name": "Hong Kong Dollar", + "symbol_native": "$", + "decimal_digits": 2, + "rounding": 0, + "code": "HKD", + "name_plural": "Hong Kong dollars" + }, + "HNL": + { + "symbol": "HNL", + "name": "Honduran Lempira", + "symbol_native": "L", + "decimal_digits": 2, + "rounding": 0, + "code": "HNL", + "name_plural": "Honduran lempiras" + }, + "HRK": + { + "symbol": "kn", + "name": "Croatian Kuna", + "symbol_native": "kn", + "decimal_digits": 2, + "rounding": 0, + "code": "HRK", + "name_plural": "Croatian kunas" + }, + "HUF": + { + "symbol": "Ft", + "name": "Hungarian Forint", + "symbol_native": "Ft", + "decimal_digits": 0, + "rounding": 0, + "code": "HUF", + "name_plural": "Hungarian forints" + }, + "IDR": + { + "symbol": "Rp", + "name": "Indonesian Rupiah", + "symbol_native": "Rp", + "decimal_digits": 0, + "rounding": 0, + "code": "IDR", + "name_plural": "Indonesian rupiahs" + }, + "ILS": + { + "symbol": "₪", + "name": "Israeli New Sheqel", + "symbol_native": "₪", + "decimal_digits": 2, + "rounding": 0, + "code": "ILS", + "name_plural": "Israeli new sheqels" + }, + "INR": + { + "symbol": "Rs", + "name": "Indian Rupee", + "symbol_native": "টকা", + "decimal_digits": 2, + "rounding": 0, + "code": "INR", + "name_plural": "Indian rupees" + }, + "IQD": + { + "symbol": "IQD", + "name": "Iraqi Dinar", + "symbol_native": "د.ع.", + "decimal_digits": 0, + "rounding": 0, + "code": "IQD", + "name_plural": "Iraqi dinars" + }, + "IRR": + { + "symbol": "IRR", + "name": "Iranian Rial", + "symbol_native": "﷼", + "decimal_digits": 0, + "rounding": 0, + "code": "IRR", + "name_plural": "Iranian rials" + }, + "ISK": + { + "symbol": "Ikr", + "name": "Icelandic Króna", + "symbol_native": "kr", + "decimal_digits": 0, + "rounding": 0, + "code": "ISK", + "name_plural": "Icelandic krónur" + }, + "JMD": + { + "symbol": "J$", + "name": "Jamaican Dollar", + "symbol_native": "$", + "decimal_digits": 2, + "rounding": 0, + "code": "JMD", + "name_plural": "Jamaican dollars" + }, + "JOD": + { + "symbol": "JD", + "name": "Jordanian Dinar", + "symbol_native": "د.أ.", + "decimal_digits": 3, + "rounding": 0, + "code": "JOD", + "name_plural": "Jordanian dinars" + }, + "JPY": + { + "symbol": "¥", + "name": "Japanese Yen", + "symbol_native": "¥", + "decimal_digits": 0, + "rounding": 0, + "code": "JPY", + "name_plural": "Japanese yen" + }, + "KES": + { + "symbol": "Ksh", + "name": "Kenyan Shilling", + "symbol_native": "Ksh", + "decimal_digits": 2, + "rounding": 0, + "code": "KES", + "name_plural": "Kenyan shillings" + }, + "KHR": + { + "symbol": "KHR", + "name": "Cambodian Riel", + "symbol_native": "៛", + "decimal_digits": 2, + "rounding": 0, + "code": "KHR", + "name_plural": "Cambodian riels" + }, + "KMF": + { + "symbol": "CF", + "name": "Comorian Franc", + "symbol_native": "FC", + "decimal_digits": 0, + "rounding": 0, + "code": "KMF", + "name_plural": "Comorian francs" + }, + "KRW": + { + "symbol": "₩", + "name": "South Korean Won", + "symbol_native": "₩", + "decimal_digits": 0, + "rounding": 0, + "code": "KRW", + "name_plural": "South Korean won" + }, + "KWD": + { + "symbol": "KD", + "name": "Kuwaiti Dinar", + "symbol_native": "د.ك.", + "decimal_digits": 3, + "rounding": 0, + "code": "KWD", + "name_plural": "Kuwaiti dinars" + }, + "KZT": + { + "symbol": "KZT", + "name": "Kazakhstani Tenge", + "symbol_native": "тңг.", + "decimal_digits": 2, + "rounding": 0, + "code": "KZT", + "name_plural": "Kazakhstani tenges" + }, + "LBP": + { + "symbol": "L.L.", + "name": "Lebanese Pound", + "symbol_native": "ل.ل.", + "decimal_digits": 0, + "rounding": 0, + "code": "LBP", + "name_plural": "Lebanese pounds" + }, + "LKR": + { + "symbol": "SLRs", + "name": "Sri Lankan Rupee", + "symbol_native": "SL Re", + "decimal_digits": 2, + "rounding": 0, + "code": "LKR", + "name_plural": "Sri Lankan rupees" + }, + "LTL": + { + "symbol": "Lt", + "name": "Lithuanian Litas", + "symbol_native": "Lt", + "decimal_digits": 2, + "rounding": 0, + "code": "LTL", + "name_plural": "Lithuanian litai" + }, + "LVL": + { + "symbol": "Ls", + "name": "Latvian Lats", + "symbol_native": "Ls", + "decimal_digits": 2, + "rounding": 0, + "code": "LVL", + "name_plural": "Latvian lati" + }, + "LYD": + { + "symbol": "LD", + "name": "Libyan Dinar", + "symbol_native": "د.ل.", + "decimal_digits": 3, + "rounding": 0, + "code": "LYD", + "name_plural": "Libyan dinars" + }, + "MAD": + { + "symbol": "MAD", + "name": "Moroccan Dirham", + "symbol_native": "د.م.", + "decimal_digits": 2, + "rounding": 0, + "code": "MAD", + "name_plural": "Moroccan dirhams" + }, + "MDL": + { + "symbol": "MDL", + "name": "Moldovan Leu", + "symbol_native": "MDL", + "decimal_digits": 2, + "rounding": 0, + "code": "MDL", + "name_plural": "Moldovan lei" + }, + "MGA": + { + "symbol": "MGA", + "name": "Malagasy Ariary", + "symbol_native": "MGA", + "decimal_digits": 0, + "rounding": 0, + "code": "MGA", + "name_plural": "Malagasy Ariaries" + }, + "MKD": + { + "symbol": "MKD", + "name": "Macedonian Denar", + "symbol_native": "MKD", + "decimal_digits": 2, + "rounding": 0, + "code": "MKD", + "name_plural": "Macedonian denari" + }, + "MMK": + { + "symbol": "MMK", + "name": "Myanma Kyat", + "symbol_native": "K", + "decimal_digits": 0, + "rounding": 0, + "code": "MMK", + "name_plural": "Myanma kyats" + }, + "MOP": + { + "symbol": "MOP$", + "name": "Macanese Pataca", + "symbol_native": "MOP$", + "decimal_digits": 2, + "rounding": 0, + "code": "MOP", + "name_plural": "Macanese patacas" + }, + "MUR": + { + "symbol": "MURs", + "name": "Mauritian Rupee", + "symbol_native": "MURs", + "decimal_digits": 0, + "rounding": 0, + "code": "MUR", + "name_plural": "Mauritian rupees" + }, + "MXN": + { + "symbol": "MX$", + "name": "Mexican Peso", + "symbol_native": "$", + "decimal_digits": 2, + "rounding": 0, + "code": "MXN", + "name_plural": "Mexican pesos" + }, + "MYR": + { + "symbol": "RM", + "name": "Malaysian Ringgit", + "symbol_native": "RM", + "decimal_digits": 2, + "rounding": 0, + "code": "MYR", + "name_plural": "Malaysian ringgits" + }, + "MZN": + { + "symbol": "MTn", + "name": "Mozambican Metical", + "symbol_native": "MTn", + "decimal_digits": 2, + "rounding": 0, + "code": "MZN", + "name_plural": "Mozambican meticals" + }, + "NAD": + { + "symbol": "N$", + "name": "Namibian Dollar", + "symbol_native": "N$", + "decimal_digits": 2, + "rounding": 0, + "code": "NAD", + "name_plural": "Namibian dollars" + }, + "NGN": + { + "symbol": "₦", + "name": "Nigerian Naira", + "symbol_native": "₦", + "decimal_digits": 2, + "rounding": 0, + "code": "NGN", + "name_plural": "Nigerian nairas" + }, + "NIO": + { + "symbol": "C$", + "name": "Nicaraguan Córdoba", + "symbol_native": "C$", + "decimal_digits": 2, + "rounding": 0, + "code": "NIO", + "name_plural": "Nicaraguan córdobas" + }, + "NOK": + { + "symbol": "Nkr", + "name": "Norwegian Krone", + "symbol_native": "kr", + "decimal_digits": 2, + "rounding": 0, + "code": "NOK", + "name_plural": "Norwegian kroner" + }, + "NPR": + { + "symbol": "NPRs", + "name": "Nepalese Rupee", + "symbol_native": "नेरू", + "decimal_digits": 2, + "rounding": 0, + "code": "NPR", + "name_plural": "Nepalese rupees" + }, + "NZD": + { + "symbol": "NZ$", + "name": "New Zealand Dollar", + "symbol_native": "$", + "decimal_digits": 2, + "rounding": 0, + "code": "NZD", + "name_plural": "New Zealand dollars" + }, + "OMR": + { + "symbol": "OMR", + "name": "Omani Rial", + "symbol_native": "ر.ع.", + "decimal_digits": 3, + "rounding": 0, + "code": "OMR", + "name_plural": "Omani rials" + }, + "PAB": + { + "symbol": "B/.", + "name": "Panamanian Balboa", + "symbol_native": "B/.", + "decimal_digits": 2, + "rounding": 0, + "code": "PAB", + "name_plural": "Panamanian balboas" + }, + "PEN": + { + "symbol": "S/.", + "name": "Peruvian Nuevo Sol", + "symbol_native": "S/.", + "decimal_digits": 2, + "rounding": 0, + "code": "PEN", + "name_plural": "Peruvian nuevos soles" + }, + "PHP": + { + "symbol": "₱", + "name": "Philippine Peso", + "symbol_native": "₱", + "decimal_digits": 2, + "rounding": 0, + "code": "PHP", + "name_plural": "Philippine pesos" + }, + "PKR": + { + "symbol": "PKRs", + "name": "Pakistani Rupee", + "symbol_native": "₨", + "decimal_digits": 0, + "rounding": 0, + "code": "PKR", + "name_plural": "Pakistani rupees" + }, + "PLN": + { + "symbol": "zł", + "name": "Polish Zloty", + "symbol_native": "zł", + "decimal_digits": 2, + "rounding": 0, + "code": "PLN", + "name_plural": "Polish zlotys" + }, + "PYG": + { + "symbol": "₲", + "name": "Paraguayan Guarani", + "symbol_native": "₲", + "decimal_digits": 0, + "rounding": 0, + "code": "PYG", + "name_plural": "Paraguayan guaranis" + }, + "QAR": + { + "symbol": "QR", + "name": "Qatari Rial", + "symbol_native": "ر.ق.", + "decimal_digits": 2, + "rounding": 0, + "code": "QAR", + "name_plural": "Qatari rials" + }, + "RON": + { + "symbol": "RON", + "name": "Romanian Leu", + "symbol_native": "RON", + "decimal_digits": 2, + "rounding": 0, + "code": "RON", + "name_plural": "Romanian lei" + }, + "RSD": + { + "symbol": "din.", + "name": "Serbian Dinar", + "symbol_native": "дин.", + "decimal_digits": 0, + "rounding": 0, + "code": "RSD", + "name_plural": "Serbian dinars" + }, + "RUB": + { + "symbol": "RUB", + "name": "Russian Ruble", + "symbol_native": "₽.", + "decimal_digits": 2, + "rounding": 0, + "code": "RUB", + "name_plural": "Russian rubles" + }, + "RWF": + { + "symbol": "RWF", + "name": "Rwandan Franc", + "symbol_native": "FR", + "decimal_digits": 0, + "rounding": 0, + "code": "RWF", + "name_plural": "Rwandan francs" + }, + "SAR": + { + "symbol": "SR", + "name": "Saudi Riyal", + "symbol_native": "ر.س.", + "decimal_digits": 2, + "rounding": 0, + "code": "SAR", + "name_plural": "Saudi riyals" + }, + "SDG": + { + "symbol": "SDG", + "name": "Sudanese Pound", + "symbol_native": "SDG", + "decimal_digits": 2, + "rounding": 0, + "code": "SDG", + "name_plural": "Sudanese pounds" + }, + "SEK": + { + "symbol": "Skr", + "name": "Swedish Krona", + "symbol_native": "kr", + "decimal_digits": 2, + "rounding": 0, + "code": "SEK", + "name_plural": "Swedish kronor" + }, + "SGD": + { + "symbol": "S$", + "name": "Singapore Dollar", + "symbol_native": "$", + "decimal_digits": 2, + "rounding": 0, + "code": "SGD", + "name_plural": "Singapore dollars" + }, + "SOS": + { + "symbol": "Ssh", + "name": "Somali Shilling", + "symbol_native": "Ssh", + "decimal_digits": 0, + "rounding": 0, + "code": "SOS", + "name_plural": "Somali shillings" + }, + "SYP": + { + "symbol": "SY£", + "name": "Syrian Pound", + "symbol_native": "ل.س.", + "decimal_digits": 0, + "rounding": 0, + "code": "SYP", + "name_plural": "Syrian pounds" + }, + "THB": + { + "symbol": "฿", + "name": "Thai Baht", + "symbol_native": "฿", + "decimal_digits": 2, + "rounding": 0, + "code": "THB", + "name_plural": "Thai baht" + }, + "TND": + { + "symbol": "DT", + "name": "Tunisian Dinar", + "symbol_native": "د.ت.", + "decimal_digits": 3, + "rounding": 0, + "code": "TND", + "name_plural": "Tunisian dinars" + }, + "TOP": + { + "symbol": "T$", + "name": "Tongan Paʻanga", + "symbol_native": "T$", + "decimal_digits": 2, + "rounding": 0, + "code": "TOP", + "name_plural": "Tongan paʻanga" + }, + "TRY": + { + "symbol": "TL", + "name": "Turkish Lira", + "symbol_native": "TL", + "decimal_digits": 2, + "rounding": 0, + "code": "TRY", + "name_plural": "Turkish Lira" + }, + "TTD": + { + "symbol": "TT$", + "name": "Trinidad and Tobago Dollar", + "symbol_native": "$", + "decimal_digits": 2, + "rounding": 0, + "code": "TTD", + "name_plural": "Trinidad and Tobago dollars" + }, + "TWD": + { + "symbol": "NT$", + "name": "New Taiwan Dollar", + "symbol_native": "NT$", + "decimal_digits": 2, + "rounding": 0, + "code": "TWD", + "name_plural": "New Taiwan dollars" + }, + "TZS": + { + "symbol": "TSh", + "name": "Tanzanian Shilling", + "symbol_native": "TSh", + "decimal_digits": 0, + "rounding": 0, + "code": "TZS", + "name_plural": "Tanzanian shillings" + }, + "UAH": + { + "symbol": "₴", + "name": "Ukrainian Hryvnia", + "symbol_native": "₴", + "decimal_digits": 2, + "rounding": 0, + "code": "UAH", + "name_plural": "Ukrainian hryvnias" + }, + "UGX": + { + "symbol": "USh", + "name": "Ugandan Shilling", + "symbol_native": "USh", + "decimal_digits": 0, + "rounding": 0, + "code": "UGX", + "name_plural": "Ugandan shillings" + }, + "UYU": + { + "symbol": "$U", + "name": "Uruguayan Peso", + "symbol_native": "$", + "decimal_digits": 2, + "rounding": 0, + "code": "UYU", + "name_plural": "Uruguayan pesos" + }, + "UZS": + { + "symbol": "UZS", + "name": "Uzbekistan Som", + "symbol_native": "UZS", + "decimal_digits": 0, + "rounding": 0, + "code": "UZS", + "name_plural": "Uzbekistan som" + }, + "VEF": + { + "symbol": "Bs.F.", + "name": "Venezuelan Bolívar", + "symbol_native": "Bs.F.", + "decimal_digits": 2, + "rounding": 0, + "code": "VEF", + "name_plural": "Venezuelan bolívars" + }, + "VND": + { + "symbol": "₫", + "name": "Vietnamese Dong", + "symbol_native": "₫", + "decimal_digits": 0, + "rounding": 0, + "code": "VND", + "name_plural": "Vietnamese dong" + }, + "XAF": + { + "symbol": "FCFA", + "name": "CFA Franc BEAC", + "symbol_native": "FCFA", + "decimal_digits": 0, + "rounding": 0, + "code": "XAF", + "name_plural": "CFA francs BEAC" + }, + "XOF": + { + "symbol": "CFA", + "name": "CFA Franc BCEAO", + "symbol_native": "CFA", + "decimal_digits": 0, + "rounding": 0, + "code": "XOF", + "name_plural": "CFA francs BCEAO" + }, + "YER": + { + "symbol": "YR", + "name": "Yemeni Rial", + "symbol_native": "ر.ي.", + "decimal_digits": 0, + "rounding": 0, + "code": "YER", + "name_plural": "Yemeni rials" + }, + "ZAR": + { + "symbol": "R", + "name": "South African Rand", + "symbol_native": "R", + "decimal_digits": 2, + "rounding": 0, + "code": "ZAR", + "name_plural": "South African rand" + }, + "ZMK": + { + "symbol": "ZK", + "name": "Zambian Kwacha", + "symbol_native": "ZK", + "decimal_digits": 0, + "rounding": 0, + "code": "ZMK", + "name_plural": "Zambian kwachas" + }, + "ZWL": + { + "symbol": "ZWL$", + "name": "Zimbabwean Dollar", + "symbol_native": "ZWL$", + "decimal_digits": 0, + "rounding": 0, + "code": "ZWL", + "name_plural": "Zimbabwean Dollar" + } +}