diff --git a/SmoothButton.podspec b/SmoothButton.podspec new file mode 100644 index 0000000..afde06b --- /dev/null +++ b/SmoothButton.podspec @@ -0,0 +1,136 @@ +# +# Be sure to run `pod spec lint SmoothButton.podspec' to ensure this is a +# valid spec and to remove all comments including this before submitting the spec. +# +# To learn more about Podspec attributes see http://docs.cocoapods.org/specification.html +# To see working Podspecs in the CocoaPods repo see https://github.com/CocoaPods/Specs/ +# + +Pod::Spec.new do |s| + + # ――― Spec Metadata ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # These will help people to find your library, and whilst it + # can feel like a chore to fill in it's definitely to your advantage. The + # summary should be tweet-length, and the description more in depth. + # + + s.name = "SmoothButton" + s.version = "0.0.1" + s.summary = "A custom buttom subclass of UIControl." + + # This description is used to generate tags and improve search results. + # * Think: What does it do? Why did you write it? What is the focus? + # * Try to keep it short, snappy and to the point. + # * Write the description between the DESC delimiters below. + # * Finally, don't worry about the indent, CocoaPods strips it! + s.description = "A custom Button made in Swift subclass of UIControl to easily style buttons." + + s.homepage = "https://github.com/RushanB/SmoothButton" #"https://cocoapods.org/pods/SmoothButton" + # s.screenshots = "www.example.com/screenshots_1.gif", "www.example.com/screenshots_2.gif" + + + # ――― Spec License ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # Licensing your code is important. See http://choosealicense.com for more info. + # CocoaPods will detect a license file if there is a named LICENSE* + # Popular ones are 'MIT', 'BSD' and 'Apache License, Version 2.0'. + # + + s.license = { :type => 'MIT', :file => 'LICENSE.md' } + # s.license = { :type => "MIT", :file => "FILE_LICENSE" } + + + # ――― Author Metadata ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # Specify the authors of the library, with email addresses. Email addresses + # of the authors are extracted from the SCM log. E.g. $ git log. CocoaPods also + # accepts just a name if you'd rather not provide an email address. + # + # Specify a social_media_url where others can refer to, for example a twitter + # profile URL. + # + + s.author = { "Matthew Weldon" => "matt@smooth.tech", "Rushan Benazir" => "rush@smooth.tech" } + # Or just: s.author = "Rushan Benazir" + # s.authors = { "Rushan Benazir" => "Rushanben@hotmail.com" } + # s.social_media_url = "http://twitter.com/Rushan Benazir" + + # ――― Platform Specifics ――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # If this Pod runs only on iOS or OS X, then specify the platform and + # the deployment target. You can optionally include the target after the platform. + # + + # s.platform = :ios + # s.platform = :ios, "5.0" + + # When using multiple platforms + # s.ios.deployment_target = "5.0" + # s.osx.deployment_target = "10.7" + # s.watchos.deployment_target = "2.0" + # s.tvos.deployment_target = "9.0" + + + # ――― Source Location ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # Specify the location from where the source should be retrieved. + # Supports git, hg, bzr, svn and HTTP. + # + + s.source = { :git => 'https://github.com/RushanB/SmoothButton.git', :tag => "#{s.version}" } + + + # ――― Source Code ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # CocoaPods is smart about how it includes source code. For source files + # giving a folder will include any swift, h, m, mm, c & cpp files. + # For header files it will include any header in the folder. + # Not including the public_header_files will make all headers public. + # + + s.source_files = "SmoothButton/Classes/**/*.{swift}" + s.exclude_files = "Classes/Exclude" + + # s.public_header_files = "Classes/**/*.h" + + + # ――― Resources ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # A list of resources included with the Pod. These are copied into the + # target bundle with a build phase script. Anything else will be cleaned. + # You can preserve files from being cleaned, please don't preserve + # non-essential files like tests, examples and documentation. + # + + # s.resource = "icon.png" + s.resources = "SmoothButton/Resources/*" + + # s.preserve_paths = "FilesToSave", "MoreFilesToSave" + + + # ――― Project Linking ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # Link your library with frameworks, or libraries. Libraries do not include + # the lib prefix of their name. + # + + # s.framework = "SomeFramework" + # s.frameworks = "SomeFramework", "AnotherFramework" + + # s.library = "iconv" + # s.libraries = "iconv", "xml2" + + + # ――― Project Settings ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― # + # + # If your library depends on compiler flags you can set them in the xcconfig hash + # where they will only apply to your library. If you depend on other Podspecs + # you can include multiple dependencies to ensure it works. + + # s.requires_arc = true + + # s.xcconfig = { "HEADER_SEARCH_PATHS" => "$(SDKROOT)/usr/include/libxml2" } + # s.dependency "JSONKit", "~> 1.4" + +end diff --git a/SmoothButton.xcodeproj/project.pbxproj b/SmoothButton.xcodeproj/project.pbxproj new file mode 100644 index 0000000..0ee6dfc --- /dev/null +++ b/SmoothButton.xcodeproj/project.pbxproj @@ -0,0 +1,452 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 58D6FC9620DF960F005D64FC /* SmoothButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 58D6FC9420DF960F005D64FC /* SmoothButton.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 58D6FC9D20DF961B005D64FC /* SmoothButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58D6FC9C20DF961B005D64FC /* SmoothButton.swift */; }; + 58D6FDA720DF9805005D64FC /* LICENSE in Resources */ = {isa = PBXBuildFile; fileRef = 58D6FD9C20DF9805005D64FC /* LICENSE */; }; + 58D6FDA820DF9805005D64FC /* Octicon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58D6FD9D20DF9805005D64FC /* Octicon.swift */; }; + 58D6FDA920DF9805005D64FC /* Iconic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58D6FD9E20DF9805005D64FC /* Iconic.swift */; }; + 58D6FDAA20DF9805005D64FC /* FontLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58D6FD9F20DF9805005D64FC /* FontLoader.swift */; }; + 58D6FDAB20DF9805005D64FC /* MapIcon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58D6FDA020DF9805005D64FC /* MapIcon.swift */; }; + 58D6FDAC20DF9805005D64FC /* MaterialIcon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58D6FDA120DF9805005D64FC /* MaterialIcon.swift */; }; + 58D6FDAD20DF9805005D64FC /* IonIcons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58D6FDA220DF9805005D64FC /* IonIcons.swift */; }; + 58D6FDAE20DF9805005D64FC /* SwiftIconLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58D6FDA320DF9805005D64FC /* SwiftIconLabel.swift */; }; + 58D6FDAF20DF9805005D64FC /* ThemifyIcon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58D6FDA420DF9805005D64FC /* ThemifyIcon.swift */; }; + 58D6FDB020DF9805005D64FC /* FontAwesome.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58D6FDA520DF9805005D64FC /* FontAwesome.swift */; }; + 58D6FDB120DF9805005D64FC /* SwiftIconFont.swift in Sources */ = {isa = PBXBuildFile; fileRef = 58D6FDA620DF9805005D64FC /* SwiftIconFont.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 58D6FC9120DF960F005D64FC /* SmoothButton.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SmoothButton.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 58D6FC9420DF960F005D64FC /* SmoothButton.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmoothButton.h; sourceTree = ""; }; + 58D6FC9520DF960F005D64FC /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 58D6FC9C20DF961B005D64FC /* SmoothButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SmoothButton.swift; sourceTree = ""; }; + 58D6FD9C20DF9805005D64FC /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; + 58D6FD9D20DF9805005D64FC /* Octicon.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Octicon.swift; sourceTree = ""; }; + 58D6FD9E20DF9805005D64FC /* Iconic.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Iconic.swift; sourceTree = ""; }; + 58D6FD9F20DF9805005D64FC /* FontLoader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FontLoader.swift; sourceTree = ""; }; + 58D6FDA020DF9805005D64FC /* MapIcon.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MapIcon.swift; sourceTree = ""; }; + 58D6FDA120DF9805005D64FC /* MaterialIcon.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MaterialIcon.swift; sourceTree = ""; }; + 58D6FDA220DF9805005D64FC /* IonIcons.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = IonIcons.swift; sourceTree = ""; }; + 58D6FDA320DF9805005D64FC /* SwiftIconLabel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SwiftIconLabel.swift; sourceTree = ""; }; + 58D6FDA420DF9805005D64FC /* ThemifyIcon.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThemifyIcon.swift; sourceTree = ""; }; + 58D6FDA520DF9805005D64FC /* FontAwesome.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FontAwesome.swift; sourceTree = ""; }; + 58D6FDA620DF9805005D64FC /* SwiftIconFont.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SwiftIconFont.swift; sourceTree = ""; }; + 58D6FDB420DF9898005D64FC /* LICENSE.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = LICENSE.md; sourceTree = ""; }; + 58D6FDB820DF9915005D64FC /* .gitignore */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitignore; sourceTree = ""; }; + 58D6FDBA20DF991C005D64FC /* octicons.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = octicons.ttf; sourceTree = ""; }; + 58D6FDBB20DF991C005D64FC /* themify.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = themify.ttf; sourceTree = ""; }; + 58D6FDBC20DF991C005D64FC /* Ionicons.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = Ionicons.ttf; sourceTree = ""; }; + 58D6FDBD20DF991C005D64FC /* FontAwesome.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = FontAwesome.ttf; sourceTree = ""; }; + 58D6FDBE20DF991C005D64FC /* open-iconic.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "open-iconic.ttf"; sourceTree = ""; }; + 58D6FDBF20DF991C005D64FC /* MaterialIcons-Regular.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "MaterialIcons-Regular.ttf"; sourceTree = ""; }; + 58D6FDC020DF991C005D64FC /* map-icons.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "map-icons.ttf"; sourceTree = ""; }; + 58D6FDC120DF991C005D64FC /* SmoothButton.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = SmoothButton.xib; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 58D6FC8D20DF960F005D64FC /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 58D6FC8720DF960F005D64FC = { + isa = PBXGroup; + children = ( + 58D6FC9320DF960F005D64FC /* SmoothButton */, + 58D6FC9220DF960F005D64FC /* Products */, + ); + sourceTree = ""; + }; + 58D6FC9220DF960F005D64FC /* Products */ = { + isa = PBXGroup; + children = ( + 58D6FC9120DF960F005D64FC /* SmoothButton.framework */, + ); + name = Products; + sourceTree = ""; + }; + 58D6FC9320DF960F005D64FC /* SmoothButton */ = { + isa = PBXGroup; + children = ( + 58D6FDB420DF9898005D64FC /* LICENSE.md */, + 58D6FDB520DF98D8005D64FC /* SmoothButton */, + 58D6FDB820DF9915005D64FC /* .gitignore */, + 58D6FC9520DF960F005D64FC /* Info.plist */, + ); + path = SmoothButton; + sourceTree = ""; + }; + 58D6FD9B20DF9805005D64FC /* SwiftIconFont */ = { + isa = PBXGroup; + children = ( + 58D6FD9C20DF9805005D64FC /* LICENSE */, + 58D6FD9D20DF9805005D64FC /* Octicon.swift */, + 58D6FD9E20DF9805005D64FC /* Iconic.swift */, + 58D6FD9F20DF9805005D64FC /* FontLoader.swift */, + 58D6FDA020DF9805005D64FC /* MapIcon.swift */, + 58D6FDA120DF9805005D64FC /* MaterialIcon.swift */, + 58D6FDA220DF9805005D64FC /* IonIcons.swift */, + 58D6FDA320DF9805005D64FC /* SwiftIconLabel.swift */, + 58D6FDA420DF9805005D64FC /* ThemifyIcon.swift */, + 58D6FDA520DF9805005D64FC /* FontAwesome.swift */, + 58D6FDA620DF9805005D64FC /* SwiftIconFont.swift */, + ); + path = SwiftIconFont; + sourceTree = ""; + }; + 58D6FDB520DF98D8005D64FC /* SmoothButton */ = { + isa = PBXGroup; + children = ( + 58D6FC9C20DF961B005D64FC /* SmoothButton.swift */, + 58D6FC9420DF960F005D64FC /* SmoothButton.h */, + 58D6FDC220DF993B005D64FC /* Example */, + 58D6FD9B20DF9805005D64FC /* SwiftIconFont */, + 58D6FDB920DF991C005D64FC /* Resources */, + 58D6FDB720DF9904005D64FC /* Assets */, + 58D6FDB620DF98FF005D64FC /* media */, + ); + path = SmoothButton; + sourceTree = ""; + }; + 58D6FDB620DF98FF005D64FC /* media */ = { + isa = PBXGroup; + children = ( + ); + path = media; + sourceTree = ""; + }; + 58D6FDB720DF9904005D64FC /* Assets */ = { + isa = PBXGroup; + children = ( + ); + path = Assets; + sourceTree = ""; + }; + 58D6FDB920DF991C005D64FC /* Resources */ = { + isa = PBXGroup; + children = ( + 58D6FDBA20DF991C005D64FC /* octicons.ttf */, + 58D6FDBB20DF991C005D64FC /* themify.ttf */, + 58D6FDBC20DF991C005D64FC /* Ionicons.ttf */, + 58D6FDBD20DF991C005D64FC /* FontAwesome.ttf */, + 58D6FDBE20DF991C005D64FC /* open-iconic.ttf */, + 58D6FDBF20DF991C005D64FC /* MaterialIcons-Regular.ttf */, + 58D6FDC020DF991C005D64FC /* map-icons.ttf */, + 58D6FDC120DF991C005D64FC /* SmoothButton.xib */, + ); + path = Resources; + sourceTree = ""; + }; + 58D6FDC220DF993B005D64FC /* Example */ = { + isa = PBXGroup; + children = ( + ); + path = Example; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 58D6FC8E20DF960F005D64FC /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 58D6FC9620DF960F005D64FC /* SmoothButton.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 58D6FC9020DF960F005D64FC /* SmoothButton */ = { + isa = PBXNativeTarget; + buildConfigurationList = 58D6FC9920DF960F005D64FC /* Build configuration list for PBXNativeTarget "SmoothButton" */; + buildPhases = ( + 58D6FC8C20DF960F005D64FC /* Sources */, + 58D6FC8D20DF960F005D64FC /* Frameworks */, + 58D6FC8E20DF960F005D64FC /* Headers */, + 58D6FC8F20DF960F005D64FC /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SmoothButton; + productName = SmoothButton; + productReference = 58D6FC9120DF960F005D64FC /* SmoothButton.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 58D6FC8820DF960F005D64FC /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0940; + ORGANIZATIONNAME = "Smooth Commerce"; + TargetAttributes = { + 58D6FC9020DF960F005D64FC = { + CreatedOnToolsVersion = 9.4.1; + LastSwiftMigration = 0940; + }; + }; + }; + buildConfigurationList = 58D6FC8B20DF960F005D64FC /* Build configuration list for PBXProject "SmoothButton" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 58D6FC8720DF960F005D64FC; + productRefGroup = 58D6FC9220DF960F005D64FC /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 58D6FC9020DF960F005D64FC /* SmoothButton */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 58D6FC8F20DF960F005D64FC /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 58D6FDA720DF9805005D64FC /* LICENSE in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 58D6FC8C20DF960F005D64FC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 58D6FDAF20DF9805005D64FC /* ThemifyIcon.swift in Sources */, + 58D6FDAE20DF9805005D64FC /* SwiftIconLabel.swift in Sources */, + 58D6FDAA20DF9805005D64FC /* FontLoader.swift in Sources */, + 58D6FDAD20DF9805005D64FC /* IonIcons.swift in Sources */, + 58D6FDB020DF9805005D64FC /* FontAwesome.swift in Sources */, + 58D6FDA920DF9805005D64FC /* Iconic.swift in Sources */, + 58D6FDB120DF9805005D64FC /* SwiftIconFont.swift in Sources */, + 58D6FDAB20DF9805005D64FC /* MapIcon.swift in Sources */, + 58D6FC9D20DF961B005D64FC /* SmoothButton.swift in Sources */, + 58D6FDAC20DF9805005D64FC /* MaterialIcon.swift in Sources */, + 58D6FDA820DF9805005D64FC /* Octicon.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 58D6FC9720DF960F005D64FC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.4; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 58D6FC9820DF960F005D64FC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.4; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 58D6FC9A20DF960F005D64FC /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = SmoothButton/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = RB.tech.Smooth.SmoothButton; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 58D6FC9B20DF960F005D64FC /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = ""; + CODE_SIGN_STYLE = Automatic; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = SmoothButton/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = RB.tech.Smooth.SmoothButton; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 4.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 58D6FC8B20DF960F005D64FC /* Build configuration list for PBXProject "SmoothButton" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 58D6FC9720DF960F005D64FC /* Debug */, + 58D6FC9820DF960F005D64FC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 58D6FC9920DF960F005D64FC /* Build configuration list for PBXNativeTarget "SmoothButton" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 58D6FC9A20DF960F005D64FC /* Debug */, + 58D6FC9B20DF960F005D64FC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 58D6FC8820DF960F005D64FC /* Project object */; +} diff --git a/SmoothButton.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/SmoothButton.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..df98058 --- /dev/null +++ b/SmoothButton.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/SmoothButton.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/SmoothButton.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/SmoothButton.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/SmoothButton.xcodeproj/project.xcworkspace/xcuserdata/rush.xcuserdatad/UserInterfaceState.xcuserstate b/SmoothButton.xcodeproj/project.xcworkspace/xcuserdata/rush.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..9f294ad Binary files /dev/null and b/SmoothButton.xcodeproj/project.xcworkspace/xcuserdata/rush.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/SmoothButton.xcodeproj/xcuserdata/rush.xcuserdatad/xcschemes/xcschememanagement.plist b/SmoothButton.xcodeproj/xcuserdata/rush.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..a2d1d8a --- /dev/null +++ b/SmoothButton.xcodeproj/xcuserdata/rush.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + SmoothButton.xcscheme + + orderHint + 1 + + + + diff --git a/SmoothButton/.gitignore b/SmoothButton/.gitignore new file mode 100644 index 0000000..e7b722d --- /dev/null +++ b/SmoothButton/.gitignore @@ -0,0 +1,33 @@ +# OS X +.DS_Store + +# Xcode +build/ +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata/ +*.xccheckout +profile +*.moved-aside +DerivedData +*.hmap +*.ipa + +# Bundler +.bundle + +Carthage +# We recommend against adding the Pods directory to your .gitignore. However +# you should judge for yourself, the pros and cons are mentioned at: +# http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control +# +# Note: if you ignore the Pods directory, make sure to uncomment +# `pod install` in .travis.yml +# +# Pods/ diff --git a/SmoothButton/Info.plist b/SmoothButton/Info.plist new file mode 100644 index 0000000..1007fd9 --- /dev/null +++ b/SmoothButton/Info.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + NSPrincipalClass + + + diff --git a/SmoothButton/LGButton b/SmoothButton/LGButton new file mode 160000 index 0000000..61e0f26 --- /dev/null +++ b/SmoothButton/LGButton @@ -0,0 +1 @@ +Subproject commit 61e0f2644df75b8310f071c685f0c04d7103bdf0 diff --git a/SmoothButton/LICENSE.md b/SmoothButton/LICENSE.md new file mode 100644 index 0000000..c5c36f8 --- /dev/null +++ b/SmoothButton/LICENSE.md @@ -0,0 +1,23 @@ +LICENSE +--------------- +MIT License + +Copyright (c) 2017 Lorenzo Greco + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/SmoothButton/SmoothButton/Resources/FontAwesome.ttf b/SmoothButton/SmoothButton/Resources/FontAwesome.ttf new file mode 100755 index 0000000..96a3639 Binary files /dev/null and b/SmoothButton/SmoothButton/Resources/FontAwesome.ttf differ diff --git a/SmoothButton/SmoothButton/Resources/Ionicons.ttf b/SmoothButton/SmoothButton/Resources/Ionicons.ttf new file mode 100755 index 0000000..c4e4632 Binary files /dev/null and b/SmoothButton/SmoothButton/Resources/Ionicons.ttf differ diff --git a/SmoothButton/SmoothButton/Resources/MaterialIcons-Regular.ttf b/SmoothButton/SmoothButton/Resources/MaterialIcons-Regular.ttf new file mode 100755 index 0000000..7015564 Binary files /dev/null and b/SmoothButton/SmoothButton/Resources/MaterialIcons-Regular.ttf differ diff --git a/SmoothButton/SmoothButton/Resources/SmoothButton.xib b/SmoothButton/SmoothButton/Resources/SmoothButton.xib new file mode 100644 index 0000000..277b508 --- /dev/null +++ b/SmoothButton/SmoothButton/Resources/SmoothButton.xib @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SmoothButton/SmoothButton/Resources/map-icons.ttf b/SmoothButton/SmoothButton/Resources/map-icons.ttf new file mode 100755 index 0000000..768f42f Binary files /dev/null and b/SmoothButton/SmoothButton/Resources/map-icons.ttf differ diff --git a/SmoothButton/SmoothButton/Resources/octicons.ttf b/SmoothButton/SmoothButton/Resources/octicons.ttf new file mode 100755 index 0000000..921111a Binary files /dev/null and b/SmoothButton/SmoothButton/Resources/octicons.ttf differ diff --git a/SmoothButton/SmoothButton/Resources/open-iconic.ttf b/SmoothButton/SmoothButton/Resources/open-iconic.ttf new file mode 100755 index 0000000..fab6048 Binary files /dev/null and b/SmoothButton/SmoothButton/Resources/open-iconic.ttf differ diff --git a/SmoothButton/SmoothButton/Resources/themify.ttf b/SmoothButton/SmoothButton/Resources/themify.ttf new file mode 100755 index 0000000..5d627e7 Binary files /dev/null and b/SmoothButton/SmoothButton/Resources/themify.ttf differ diff --git a/SmoothButton/SmoothButton/SmoothButton.h b/SmoothButton/SmoothButton/SmoothButton.h new file mode 100644 index 0000000..1374d41 --- /dev/null +++ b/SmoothButton/SmoothButton/SmoothButton.h @@ -0,0 +1,19 @@ +// +// SmoothButton.h +// SmoothButton +// +// Created by Mattew Weldon & Rushan Benazir on 2018-06-24. +// Copyright © 2018 Smooth Commerce. All rights reserved. +// + +#import + +//! Project version number for SmoothButton. +FOUNDATION_EXPORT double SmoothButtonVersionNumber; + +//! Project version string for SmoothButton. +FOUNDATION_EXPORT const unsigned char SmoothButtonVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/SmoothButton/SmoothButton/SmoothButton.swift b/SmoothButton/SmoothButton/SmoothButton.swift new file mode 100644 index 0000000..52b85c4 --- /dev/null +++ b/SmoothButton/SmoothButton/SmoothButton.swift @@ -0,0 +1,784 @@ +// +// Based on LGButton by Lorenzo Greco (https://github.com/loregr/LGButton) +// +// SmoothButton.swift +// SmoothButton +// +// Created by Mattew Weldon & Rushan Benazir on 2018-06-24. +// Copyright © 2018 Smooth Commerce. All rights reserved. +// + +import UIKit +import QuartzCore + +fileprivate let defaultBackgroundColor = UIColor(red: 252.0, green: 182.0, blue: 90.0, alpha: 1.0) +fileprivate let defaultCornerRadius: CGFloat = 6.0 +fileprivate let defaultHasFullyRoundedCorners: Bool = false +fileprivate let defaultBorderColor = UIColor.clear +fileprivate let defaultBorderWidth: CGFloat = 0.0 + +fileprivate let defaultTitleColor = UIColor.black +fileprivate let defaultTitleFont = UIFont(name: "Futura-Bold", size: 20.0) +fileprivate let defaultTitleString: String = "Button" +fileprivate let defaultLoadingString: String = "Loading" + +fileprivate let defaultShadowOffset = CGSize(width: 0.0, height: 5.0) +fileprivate let defaultShadowRadius: CGFloat = 5.0 +fileprivate let defaultShadowOpacity: Float = 0.5 +fileprivate let defaultShadowColor = UIColor.black +fileprivate let defaultLoadingSpinnerColor = UIColor.black +fileprivate let defaultAnimationDuration: Double = 0.3 +fileprivate let defaultIsEnabledWhileLoading: Bool = false + + +@IBDesignable +public class SmoothButton: UIControl { + + enum TouchAlphaValues : CGFloat { + case touched = 0.7 + case untouched = 1.0 + } + + let touchDisableRadius : CGFloat = 100.0 + + let availableFontIcons = ["fa", "io", "oc", "ic", "ma", "ti", "mi"] + + var gradient : CAGradientLayer? + + override public var isEnabled:Bool{ + didSet{ + if(oldValue != isEnabled){ + self.updateEnabledStyles() + } + } + } + + static func slowAnimationsConstant() -> Float{ + #if TARGET_IPHONE_SIMULATOR + return UIAnimationDragCoefficient(); + #else + return 1.0; + #endif + } + + fileprivate var rootView : UIView! + @IBOutlet fileprivate weak var titleLbl: UILabel! + @IBOutlet fileprivate weak var mainStackView: UIStackView! + + @IBOutlet fileprivate weak var bgContentView: UIView! + @IBOutlet fileprivate weak var leftIcon: UILabel! + @IBOutlet fileprivate weak var leftImage: UIImageView! + @IBOutlet fileprivate weak var rightIcon: UILabel! + @IBOutlet fileprivate weak var rightImage: UIImageView! + + @IBOutlet fileprivate weak var trailingMainConstraint: NSLayoutConstraint! + @IBOutlet fileprivate weak var leadingMainConstraint: NSLayoutConstraint! + @IBOutlet fileprivate weak var bottomMainConstraint: NSLayoutConstraint! + @IBOutlet fileprivate weak var topMainConstraint: NSLayoutConstraint! + + @IBOutlet fileprivate weak var leftImageHeightConstraint: NSLayoutConstraint! + @IBOutlet fileprivate weak var leftImageWidthConstraint: NSLayoutConstraint! + @IBOutlet fileprivate weak var rightImageHeightConstraint: NSLayoutConstraint! + @IBOutlet fileprivate weak var rightImageWidthConstraint: NSLayoutConstraint! + + @IBOutlet fileprivate weak var loadingStackView: UIStackView! + @IBOutlet fileprivate weak var loadingSpinner: UIActivityIndicatorView! + @IBOutlet fileprivate weak var loadingLabel: UILabel! + @IBOutlet fileprivate var trailingLoadingConstraint: NSLayoutConstraint! + @IBOutlet fileprivate var leadingLoadingConstraint: NSLayoutConstraint! + + + public var isLoading = false { + didSet { + showLoadingView() + } + } + + var isEnabledWhileLoading: Bool = defaultIsEnabledWhileLoading { + didSet{ + setupView() + } + } + + + // MARK: - Inspectable properties + // MARK: + + @IBInspectable public var bgColor: UIColor = defaultBackgroundColor { + didSet{ + setupView() + } + } + + @IBInspectable public var showTouchFeedback: Bool = true + + @IBInspectable public var gradientStartColor: UIColor? = nil { + didSet{ + setupView() + } + } + + @IBInspectable public var gradientEndColor: UIColor? = nil { + didSet{ + setupView() + } + } + + @IBInspectable public var gradientHorizontal: Bool = false { + didSet{ + if gradient != nil { + gradient?.removeFromSuperlayer() + gradient = nil + setupView() + } + } + } + + @IBInspectable public var gradientRotation: CGFloat = 0 { + didSet{ + if gradient != nil { + gradient?.removeFromSuperlayer() + gradient = nil + setupView() + } + } + } + + @IBInspectable public var cornerRadius: CGFloat = defaultCornerRadius { + didSet{ + setupView() + } + } + + @IBInspectable public var fullyRoundedCorners: Bool = defaultHasFullyRoundedCorners { + didSet{ + setupBorderAndCorners() + } + } + + @IBInspectable public var borderColor: UIColor = defaultBorderColor { + didSet{ + setupView() + } + } + + @IBInspectable public var borderWidth: CGFloat = defaultBorderWidth { + didSet{ + setupView() + } + } + + @IBInspectable public var titleColor: UIColor = defaultTitleColor { + didSet{ + setupView() + } + } + + @IBInspectable public var titleString: String = defaultTitleString { + didSet{ + setupView() + + } + } + + @IBInspectable public var titleFont: UIFont? = defaultTitleFont { + didSet{ + setupView() + } + } + + + @IBInspectable public var titleFontName: String? { + didSet{ + setupView() + } + } + + @IBInspectable public var titleFontSize: CGFloat = 14.0 { + didSet{ + setupView() + } + } + + @IBInspectable public var verticalOrientation: Bool = false { + didSet { + setupView() + } + } + + @IBInspectable public var leftIconString: String = "" { + didSet{ + setupView() + } + } + + @IBInspectable public var leftIconFontName: String = " " { + didSet{ + setupView() + } + } + + @IBInspectable public var leftIconFontSize: CGFloat = 14.0 { + didSet{ + setupView() + } + } + + @IBInspectable public var leftIconColor: UIColor = UIColor.white { + didSet{ + setupView() + } + } + + @IBInspectable public var leftImageSrc: UIImage? = nil { + didSet{ + setupView() + } + } + + @IBInspectable public var leftImageWidth: CGFloat = 20 { + didSet{ + setupView() + } + } + + @IBInspectable public var leftImageHeight: CGFloat = 20 { + didSet{ + setupView() + } + } + + @IBInspectable public var leftImageColor: UIColor? = nil { + didSet{ + setupView() + } + } + + @IBInspectable public var rightIconString: String = "" { + didSet{ + setupView() + } + } + + @IBInspectable public var rightIconFontName: String = " " { + didSet{ + setupView() + } + } + + @IBInspectable public var rightIconFontSize: CGFloat = 14.0 { + didSet{ + setupView() + } + } + + @IBInspectable public var rightIconColor: UIColor = UIColor.white { + didSet{ + setupView() + } + } + + @IBInspectable public var rightImageSrc: UIImage? = nil { + didSet{ + setupView() + } + } + + @IBInspectable public var rightImageWidth: CGFloat = 20 { + didSet{ + setupView() + } + } + + @IBInspectable public var rightImageHeight: CGFloat = 20 { + didSet{ + setupView() + } + } + + @IBInspectable public var rightImageColor: UIColor? = nil { + didSet{ + setupView() + } + } + + @IBInspectable public var spacingTitleIcon: CGFloat = 16.0 { + didSet{ + setupView() + } + } + + @IBInspectable public var spacingTop: CGFloat = 8.0 { + didSet{ + setupView() + } + } + + @IBInspectable public var spacingBottom: CGFloat = 8.0 { + didSet{ + setupView() + } + } + + @IBInspectable public var spacingLeading: CGFloat = 16.0 { + didSet{ + setupView() + } + } + + @IBInspectable public var spacingTrailing: CGFloat = 16.0 { + didSet{ + setupView() + } + } + + @IBInspectable public var shadowOffset: CGSize = defaultShadowOffset { + didSet{ + setupView() + } + } + + @IBInspectable public var shadowRadius: CGFloat = defaultShadowRadius { + didSet{ + setupView() + } + } + + @IBInspectable public var shadowOpacity: Float = defaultShadowOpacity { + didSet{ + setupView() + } + } + + @IBInspectable public var shadowColor: UIColor = defaultShadowColor { + didSet{ + setupView() + } + } + + @IBInspectable public var loadingSpinnerColor: UIColor = defaultLoadingSpinnerColor { + didSet{ + setupView() + } + } + + @IBInspectable public var loadingTitleColor: UIColor = defaultTitleColor.withAlphaComponent(0.8) { + didSet{ + setupView() + } + } + + @IBInspectable public var loadingString: String = defaultLoadingString { + didSet{ + setupView() + } + } + + + @IBInspectable public var loadingFont: UIFont? = defaultTitleFont{ + didSet{ + setupView() + } + } + + @IBInspectable public var loadingFontName: String? = nil{ + didSet{ + setupView() + } + } + + @IBInspectable public var loadingFontSize: CGFloat = 14.0 { + didSet{ + setupView() + } + } + + // MARK: - Overrides + // MARK: + + override init(frame: CGRect) { + super.init(frame: frame) + xibSetup() + setupView() + } + + required public init(coder aDecoder: NSCoder) { + super.init(coder: aDecoder)! + xibSetup() + setupView() + } + + override public func layoutSubviews() { + if gradient != nil { + gradient?.removeFromSuperlayer() + gradient = nil + setupGradientBackground() + } + setupBorderAndCorners() + } + + private func updateEnabledStyles() { + self.layer.removeAllAnimations() + + let enabled = self.isEnabled + + let shadowOpacityToValue:Float = enabled ? self.shadowOpacity : 0.0 + let shadowOpacityFromValue:Float = enabled ? 0.0 : self.shadowOpacity + + let opacityToValue:Float = enabled ? 1.0 : 0.5 + let opacityFromValue:Float = enabled ? 0.5 : 1 + + let shadowRadiusFromValue: CGFloat = enabled ? 0.0 : self.shadowRadius + let shadowRadiusToValue:CGFloat = enabled ? self.shadowRadius : 0.0 + + let duration:Double = Double(0.3 * SmoothButton.slowAnimationsConstant()) + + + let shadowAnimation = CABasicAnimation(keyPath: "shadowOpacity") + shadowAnimation.fillMode = kCAFillModeForwards + shadowAnimation.isRemovedOnCompletion = false + shadowAnimation.fromValue = shadowOpacityFromValue + shadowAnimation.toValue = shadowOpacityToValue + shadowAnimation.duration = duration + + let shadowRadiusAnimation = CABasicAnimation(keyPath: "shadowRadius") + shadowRadiusAnimation.fillMode = kCAFillModeForwards + shadowRadiusAnimation.isRemovedOnCompletion = false + shadowRadiusAnimation.fromValue = shadowRadiusFromValue + shadowRadiusAnimation.toValue = shadowRadiusToValue + shadowRadiusAnimation.duration = duration + + let alphaAnimation = CABasicAnimation(keyPath: "opacity") + alphaAnimation.fillMode = kCAFillModeForwards + alphaAnimation.isRemovedOnCompletion = false + alphaAnimation.fromValue = opacityFromValue + alphaAnimation.toValue = opacityToValue + alphaAnimation.duration = duration + + self.layer.shadowOpacity = shadowOpacityToValue + self.layer.shadowRadius = shadowRadiusToValue + self.layer.opacity = opacityToValue + self.layer.add(shadowAnimation, forKey: "shadowOpacity") + self.layer.add(shadowRadiusAnimation, forKey: "shadowRadius") + self.layer.add(alphaAnimation, forKey: "opacity") + } + + override public var intrinsicContentSize: CGSize { + return CGSize(width: 10, height: 10) + } + + public func setAction(target:Any, action: Selector) { + let tapGesture: UITapGestureRecognizer = UITapGestureRecognizer(target: target, action: action) + tapGesture.numberOfTapsRequired = 1 + addGestureRecognizer(tapGesture) + } + + // MARK: - Internal functions + // MARK: + + // Setup the view appearance + fileprivate func setupView(){ + bgContentView.clipsToBounds = true + layer.masksToBounds = false + setIconOrientation() + setupBackgroundColor() + setupGradientBackground() + setupBorderAndCorners() + setupTitle() + setupLeftIcon() + setupRightIcon() + setupLeftImage() + setupRightImage() + setupSpacings() + setupShadow() + setupLoadingView() + } + + fileprivate func setIconOrientation() { + if verticalOrientation { + mainStackView.axis = .vertical + }else{ + mainStackView.axis = .horizontal + } + } + + fileprivate func setupBackgroundColor() { + bgContentView.backgroundColor = bgColor + } + + fileprivate func setupGradientBackground() { + if gradientStartColor != nil && gradientEndColor != nil && gradient == nil{ + gradient = CAGradientLayer() + gradient!.frame.size = frame.size + gradient!.colors = [gradientStartColor!.cgColor, gradientEndColor!.cgColor] + + var rotation:CGFloat! + if gradientRotation >= 0 { + rotation = min(gradientRotation, CGFloat(360.0)) + } else { + rotation = max(gradientRotation, CGFloat(-360.0)) + } + var xAngle:Float = Float(rotation/360) + if (gradientHorizontal) { + xAngle = 0.25 + } + let a = pow(sinf((2*Float(Double.pi)*((xAngle+0.75)/2))),2) + let b = pow(sinf((2*Float(Double.pi)*((xAngle+0.0)/2))),2) + let c = pow(sinf((2*Float(Double.pi)*((xAngle+0.25)/2))),2) + let d = pow(sinf((2*Float(Double.pi)*((xAngle+0.5)/2))),2) + gradient!.startPoint = CGPoint(x: CGFloat(a), y: CGFloat(b)) + gradient!.endPoint = CGPoint(x: CGFloat(c), y: CGFloat(d)) + + bgContentView.layer.addSublayer(gradient!) + } + } + + fileprivate func setupBorderAndCorners() { + if fullyRoundedCorners { + bgContentView.layer.cornerRadius = frame.size.height/2 + layer.cornerRadius = frame.size.height/2 + }else{ + bgContentView.layer.cornerRadius = cornerRadius + layer.cornerRadius = cornerRadius + } + bgContentView.layer.borderColor = borderColor.cgColor + bgContentView.layer.borderWidth = borderWidth + } + + fileprivate func setupTitle() { + titleLbl.isHidden = titleString.isEmpty + titleLbl.text = titleString + titleLbl.textColor = titleColor + if titleFontName != nil { + titleLbl.font = UIFont.init(name:titleFontName! , size:titleFontSize) + }else if let font = titleFont{ + titleLbl.font = font + } + } + + fileprivate func setupLeftIcon(){ + setupIcon(icon: leftIcon, + fontName: leftIconFontName, + iconName: leftIconString, + fontSize: leftIconFontSize, + color: leftIconColor) + } + + fileprivate func setupRightIcon(){ + setupIcon(icon: rightIcon, + fontName: rightIconFontName, + iconName: rightIconString, + fontSize: rightIconFontSize, + color: rightIconColor) + } + + fileprivate func setupLeftImage(){ + setupImage(imageView: leftImage, + image: leftImageSrc, + color: leftImageColor, + widthConstraint: leftImageWidthConstraint, + heightConstraint: leftImageHeightConstraint, + widthValue: leftImageWidth, + heightValue: leftImageHeight) + leftIcon.isHidden = (leftImageSrc != nil || !availableFontIcons.contains(leftIconFontName)) + } + + fileprivate func setupRightImage(){ + rightIcon.isHidden = rightImageSrc != nil + setupImage(imageView: rightImage, + image: rightImageSrc, + color: rightImageColor, + widthConstraint: rightImageWidthConstraint, + heightConstraint: rightImageHeightConstraint, + widthValue: rightImageWidth, + heightValue: rightImageHeight) + rightIcon.isHidden = (rightImageSrc != nil || !availableFontIcons.contains(rightIconFontName)) + } + + fileprivate func setupSpacings(){ + mainStackView.spacing = spacingTitleIcon + topMainConstraint.constant = spacingTop + bottomMainConstraint.constant = spacingBottom + leadingMainConstraint.constant = spacingLeading + trailingMainConstraint.constant = spacingTrailing + setupBorderAndCorners() + } + + fileprivate func setupShadow(){ + + layer.shadowOffset = shadowOffset + layer.shadowRadius = shadowRadius + layer.shadowOpacity = isEnabled ? shadowOpacity : 0.0 + layer.shadowColor = shadowColor.cgColor + + } + + fileprivate func setupLoadingView(){ + loadingSpinner.activityIndicatorViewStyle = .whiteLarge + loadingLabel.isHidden = loadingString.isEmpty + loadingLabel.text = loadingString + loadingLabel.textColor = loadingTitleColor + if let fontString = loadingFontName, fontString != "" { + loadingLabel.font = UIFont.init(name:fontString , size:titleFontSize) + }else if let font = loadingFont{ + loadingLabel.font = font + } + loadingSpinner.color = loadingSpinnerColor + setupBorderAndCorners() + } + + fileprivate func setupIcon(icon:UILabel, fontName:String, iconName:String, fontSize:CGFloat, color:UIColor){ + icon.isHidden = !availableFontIcons.contains(fontName) + if !icon.isHidden { + icon.textColor = color + switch fontName { + case "fa": + icon.font = UIFont.icon(from: .FontAwesome, ofSize: fontSize) + icon.text = String.fontAwesomeIcon(iconName) + break; + case "io": + icon.font = UIFont.icon(from: .Ionicon, ofSize: fontSize) + icon.text = String.fontIonIcon(iconName) + break; + case "oc": + icon.font = UIFont.icon(from: .Octicon, ofSize: fontSize) + icon.text = String.fontOcticon(iconName) + break; + case "ic": + icon.font = UIFont.icon(from: .Iconic, ofSize: fontSize) + icon.text = String.fontIconicIcon(iconName) + break; + case "ma": + icon.font = UIFont.icon(from: .MaterialIcon, ofSize: fontSize) + icon.text = String.fontMaterialIcon(iconName.replacingOccurrences(of: "-", with: ".")) + break; + case "ti": + icon.font = UIFont.icon(from: .Themify, ofSize: fontSize) + icon.text = String.fontThemifyIcon(iconName.replacingOccurrences(of: "-", with: ".")) + break; + case "mi": + icon.font = UIFont.icon(from: .MapIcon, ofSize: fontSize) + icon.text = String.fontMapIcon(iconName.replacingOccurrences(of: "-", with: ".")) + break; + default: + break; + } + } + setupBorderAndCorners() + } + + fileprivate func setupImage(imageView:UIImageView, image:UIImage?, color:UIColor?, widthConstraint:NSLayoutConstraint, heightConstraint:NSLayoutConstraint, widthValue:CGFloat, heightValue:CGFloat){ + imageView.isHidden = image == nil + if image != nil { + if color != nil { + imageView.image = image?.withRenderingMode(.alwaysTemplate) + imageView.tintColor = color + }else{ + image?.withRenderingMode(.alwaysOriginal) + imageView.image = image + } + widthConstraint.constant = widthValue + heightConstraint.constant = heightValue + } + setupBorderAndCorners() + } + + fileprivate func showLoadingView() { + + leadingLoadingConstraint.isActive = isLoading + trailingLoadingConstraint.isActive = isLoading + mainStackView.isHidden = isLoading + loadingStackView.isHidden = !isLoading + isUserInteractionEnabled = isEnabledWhileLoading || !isLoading + + + let animation = CABasicAnimation(keyPath: "opacity") + animation.fillMode = kCAFillModeForwards + animation.isRemovedOnCompletion = false + animation.toValue = 0.5 + animation.fromValue = 1.0 + animation.autoreverses = true + animation.repeatCount = .infinity + animation.repeatDuration = .infinity + animation.duration = Double(1.0 * SmoothButton.slowAnimationsConstant()) + self.loadingStackView.layer.add(animation, forKey: "opacity") + } + + // MARK: - Xib file + // MARK: + fileprivate func xibSetup() { + rootView = loadViewFromNib() + rootView.frame = bounds + rootView.autoresizingMask = [UIViewAutoresizing.flexibleWidth, UIViewAutoresizing.flexibleHeight] + addSubview(rootView) + leadingLoadingConstraint.isActive = false + trailingLoadingConstraint.isActive = false + } + + fileprivate func loadViewFromNib() -> UIView { + + let bundle = Bundle(for: type(of: self)) + let nib = UINib(nibName: "SmoothButton", bundle: bundle) + let view = nib.instantiate(withOwner: self, options: nil)[0] as! UIView + + return view + } + + // MARK: - Touches + // MARK: + + var touchAlpha : TouchAlphaValues = .untouched { + didSet { + updateTouchAlpha() + } + } + + var pressed : Bool = false { + didSet { + if !showTouchFeedback { + return + } + + touchAlpha = (pressed) ? .touched : .untouched + } + } + + override public func touchesBegan(_ touches: Set, with event: UIEvent?){ + pressed = true + } + + override public func touchesEnded(_ touches: Set, with event: UIEvent?){ + let shouldSendActions = pressed + pressed = false + if shouldSendActions{ + sendActions(for: .allEvents) + sendActions(for: .touchUpInside) + } + } + + override public func touchesMoved(_ touches: Set, with event: UIEvent?){ + if let touchLoc = touches.first?.location(in: self){ + if (touchLoc.x < -touchDisableRadius || + touchLoc.y < -touchDisableRadius || + touchLoc.x > self.bounds.size.width + touchDisableRadius || + touchLoc.y > self.bounds.size.height + touchDisableRadius){ + pressed = false + } + else if self.touchAlpha == .untouched { + pressed = true + } + } + } + + override public func touchesCancelled(_ touches: Set, with event: UIEvent?) { + pressed = false + } + + func updateTouchAlpha() { + if self.alpha != self.touchAlpha.rawValue { + UIView.animate(withDuration: defaultAnimationDuration) { + self.alpha = self.touchAlpha.rawValue + } + } + } +} diff --git a/SmoothButton/SmoothButton/SwiftIconFont/FontAwesome.swift b/SmoothButton/SmoothButton/SwiftIconFont/FontAwesome.swift new file mode 100755 index 0000000..3efce24 --- /dev/null +++ b/SmoothButton/SmoothButton/SwiftIconFont/FontAwesome.swift @@ -0,0 +1,604 @@ +// +// NSString+FontAwesome.swift +// SwiftIconFont +// +// Created by Sedat Ciftci on 18/03/16. +// Copyright © 2016 Sedat Gokbek Ciftci. All rights reserved. +// + +import UIKit + +public let fontAwesomeIconArr: [String: String] = [ + "adjust":"\u{f042}", + "adn":"\u{f170}", + "align-center":"\u{f037}", + "align-justify":"\u{f039}", + "align-left":"\u{f036}", + "align-right":"\u{f038}", + "ambulance":"\u{f0f9}", + "anchor":"\u{f13d}", + "android":"\u{f17b}", + "angellist":"\u{f209}", + "angle-double-down":"\u{f103}", + "angle-double-left":"\u{f100}", + "angle-double-right":"\u{f101}", + "angle-double-up":"\u{f102}", + "angle-down":"\u{f107}", + "angle-left":"\u{f104}", + "angle-right":"\u{f105}", + "angle-up":"\u{f106}", + "apple":"\u{f179}", + "archive":"\u{f187}", + "area-chart":"\u{f1fe}", + "arrow-circle-down":"\u{f0ab}", + "arrow-circle-left":"\u{f0a8}", + "arrow-circle-o-down":"\u{f01a}", + "arrow-circle-o-left":"\u{f190}", + "arrow-circle-o-right":"\u{f18e}", + "arrow-circle-o-up":"\u{f01b}", + "arrow-circle-right":"\u{f0a9}", + "arrow-circle-up":"\u{f0aa}", + "arrow-down":"\u{f063}", + "arrow-left":"\u{f060}", + "arrow-right":"\u{f061}", + "arrow-up":"\u{f062}", + "arrows":"\u{f047}", + "arrows-alt":"\u{f0b2}", + "arrows-h":"\u{f07e}", + "arrows-v":"\u{f07d}", + "asterisk":"\u{f069}", + "at":"\u{f1fa}", + "automobile":"\u{f1b9}", + "backward":"\u{f04a}", + "ban":"\u{f05e}", + "bank":"\u{f19c}", + "bar-chart":"\u{f080}", + "bar-chart-o":"\u{f080}", + "barcode":"\u{f02a}", + "bars":"\u{f0c9}", + "bed":"\u{f236}", + "beer":"\u{f0fc}", + "behance":"\u{f1b4}", + "behance-square":"\u{f1b5}", + "bell":"\u{f0f3}", + "bell-o":"\u{f0a2}", + "bell-slash":"\u{f1f6}", + "bell-slash-o":"\u{f1f7}", + "bicycle":"\u{f206}", + "binoculars":"\u{f1e5}", + "birthday-cake":"\u{f1fd}", + "bitbucket":"\u{f171}", + "bitbucket-square":"\u{f172}", + "bitcoin":"\u{f15a}", + "bold":"\u{f032}", + "bolt":"\u{f0e7}", + "bomb":"\u{f1e2}", + "book":"\u{f02d}", + "bookmark":"\u{f02e}", + "bookmark-o":"\u{f097}", + "briefcase":"\u{f0b1}", + "btc":"\u{f15a}", + "bug":"\u{f188}", + "building":"\u{f1ad}", + "building-o":"\u{f0f7}", + "bullhorn":"\u{f0a1}", + "bullseye":"\u{f140}", + "bus":"\u{f207}", + "buysellads":"\u{f20d}", + "cab":"\u{f1ba}", + "calculator":"\u{f1ec}", + "calendar":"\u{f073}", + "calendar-o":"\u{f133}", + "camera":"\u{f030}", + "camera-retro":"\u{f083}", + "car":"\u{f1b9}", + "caret-down":"\u{f0d7}", + "caret-left":"\u{f0d9}", + "caret-right":"\u{f0da}", + "caret-square-o-down":"\u{f150}", + "caret-square-o-left":"\u{f191}", + "caret-square-o-right":"\u{f152}", + "caret-square-o-up":"\u{f151}", + "caret-up":"\u{f0d8}", + "cart-arrow-down":"\u{f218}", + "cart-plus":"\u{f217}", + "cc":"\u{f20a}", + "cc-amex":"\u{f1f3}", + "cc-discover":"\u{f1f2}", + "cc-mastercard":"\u{f1f1}", + "cc-paypal":"\u{f1f4}", + "cc-stripe":"\u{f1f5}", + "cc-visa":"\u{f1f0}", + "certificate":"\u{f0a3}", + "chain":"\u{f0c1}", + "chain-broken":"\u{f127}", + "check":"\u{f00c}", + "check-circle":"\u{f058}", + "check-circle-o":"\u{f05d}", + "check-square":"\u{f14a}", + "check-square-o":"\u{f046}", + "chevron-circle-down":"\u{f13a}", + "chevron-circle-left":"\u{f137}", + "chevron-circle-right":"\u{f138}", + "chevron-circle-up":"\u{f139}", + "chevron-down":"\u{f078}", + "chevron-left":"\u{f053}", + "chevron-right":"\u{f054}", + "chevron-up":"\u{f077}", + "child":"\u{f1ae}", + "circle":"\u{f111}", + "circle-o":"\u{f10c}", + "circle-o-notch":"\u{f1ce}", + "circle-thin":"\u{f1db}", + "clipboard":"\u{f0ea}", + "clock-o":"\u{f017}", + "close":"\u{f00d}", + "cloud":"\u{f0c2}", + "cloud-download":"\u{f0ed}", + "cloud-upload":"\u{f0ee}", + "cny":"\u{f157}", + "code":"\u{f121}", + "code-fork":"\u{f126}", + "codepen":"\u{f1cb}", + "coffee":"\u{f0f4}", + "cog":"\u{f013}", + "cogs":"\u{f085}", + "columns":"\u{f0db}", + "comment":"\u{f075}", + "comment-o":"\u{f0e5}", + "comments":"\u{f086}", + "comments-o":"\u{f0e6}", + "compass":"\u{f14e}", + "compress":"\u{f066}", + "connectdevelop":"\u{f20e}", + "copy":"\u{f0c5}", + "copyright":"\u{f1f9}", + "credit-card":"\u{f09d}", + "crop":"\u{f125}", + "crosshairs":"\u{f05b}", + "css3":"\u{f13c}", + "cube":"\u{f1b2}", + "cubes":"\u{f1b3}", + "cut":"\u{f0c4}", + "cutlery":"\u{f0f5}", + "dashboard":"\u{f0e4}", + "dashcube":"\u{f210}", + "database":"\u{f1c0}", + "dedent":"\u{f03b}", + "delicious":"\u{f1a5}", + "desktop":"\u{f108}", + "deviantart":"\u{f1bd}", + "diamond":"\u{f219}", + "digg":"\u{f1a6}", + "dollar":"\u{f155}", + "dot-circle-o":"\u{f192}", + "download":"\u{f019}", + "dribbble":"\u{f17d}", + "dropbox":"\u{f16b}", + "drupal":"\u{f1a9}", + "edit":"\u{f044}", + "eject":"\u{f052}", + "ellipsis-h":"\u{f141}", + "ellipsis-v":"\u{f142}", + "empire":"\u{f1d1}", + "envelope":"\u{f0e0}", + "envelope-o":"\u{f003}", + "envelope-square":"\u{f199}", + "eraser":"\u{f12d}", + "eur":"\u{f153}", + "euro":"\u{f153}", + "exchange":"\u{f0ec}", + "exclamation":"\u{f12a}", + "exclamation-circle":"\u{f06a}", + "exclamation-triangle":"\u{f071}", + "expand":"\u{f065}", + "external-link":"\u{f08e}", + "external-link-square":"\u{f14c}", + "eye":"\u{f06e}", + "eye-slash":"\u{f070}", + "eyedropper":"\u{f1fb}", + "facebook":"\u{f09a}", + "facebook-f":"\u{f09a}", + "facebook-official":"\u{f230}", + "facebook-square":"\u{f082}", + "fast-backward":"\u{f049}", + "fast-forward":"\u{f050}", + "fax":"\u{f1ac}", + "female":"\u{f182}", + "fighter-jet":"\u{f0fb}", + "file":"\u{f15b}", + "file-archive-o":"\u{f1c6}", + "file-audio-o":"\u{f1c7}", + "file-code-o":"\u{f1c9}", + "file-excel-o":"\u{f1c3}", + "file-image-o":"\u{f1c5}", + "file-movie-o":"\u{f1c8}", + "file-o":"\u{f016}", + "file-pdf-o":"\u{f1c1}", + "file-photo-o":"\u{f1c5}", + "file-picture-o":"\u{f1c5}", + "file-powerpoint-o":"\u{f1c4}", + "file-sound-o":"\u{f1c7}", + "file-text":"\u{f15c}", + "file-text-o":"\u{f0f6}", + "file-video-o":"\u{f1c8}", + "file-word-o":"\u{f1c2}", + "file-zip-o":"\u{f1c6}", + "files-o":"\u{f0c5}", + "film":"\u{f008}", + "filter":"\u{f0b0}", + "fire":"\u{f06d}", + "fire-extinguisher":"\u{f134}", + "flag":"\u{f024}", + "flag-checkered":"\u{f11e}", + "flag-o":"\u{f11d}", + "flash":"\u{f0e7}", + "flask":"\u{f0c3}", + "flickr":"\u{f16e}", + "floppy-o":"\u{f0c7}", + "folder":"\u{f07b}", + "folder-o":"\u{f114}", + "folder-open":"\u{f07c}", + "folder-open-o":"\u{f115}", + "font":"\u{f031}", + "forumbee":"\u{f211}", + "forward":"\u{f04e}", + "foursquare":"\u{f180}", + "frown-o":"\u{f119}", + "futbol-o":"\u{f1e3}", + "gamepad":"\u{f11b}", + "gavel":"\u{f0e3}", + "gbp":"\u{f154}", + "ge":"\u{f1d1}", + "gear":"\u{f013}", + "gears":"\u{f085}", + "genderless":"\u{f1db}", + "gift":"\u{f06b}", + "git":"\u{f1d3}", + "git-square":"\u{f1d2}", + "github":"\u{f09b}", + "github-alt":"\u{f113}", + "github-square":"\u{f092}", + "gittip":"\u{f184}", + "glass":"\u{f000}", + "globe":"\u{f0ac}", + "google":"\u{f1a0}", + "google-plus":"\u{f0d5}", + "google-plus-square":"\u{f0d4}", + "google-wallet":"\u{f1ee}", + "graduation-cap":"\u{f19d}", + "gratipay":"\u{f184}", + "group":"\u{f0c0}", + "h-square":"\u{f0fd}", + "hacker-news":"\u{f1d4}", + "hand-o-down":"\u{f0a7}", + "hand-o-left":"\u{f0a5}", + "hand-o-right":"\u{f0a4}", + "hand-o-up":"\u{f0a6}", + "hdd-o":"\u{f0a0}", + "header":"\u{f1dc}", + "headphones":"\u{f025}", + "heart":"\u{f004}", + "heart-o":"\u{f08a}", + "heartbeat":"\u{f21e}", + "history":"\u{f1da}", + "home":"\u{f015}", + "hospital-o":"\u{f0f8}", + "hotel":"\u{f236}", + "html5":"\u{f13b}", + "ils":"\u{f20b}", + "image":"\u{f03e}", + "inbox":"\u{f01c}", + "indent":"\u{f03c}", + "info":"\u{f129}", + "info-circle":"\u{f05a}", + "inr":"\u{f156}", + "instagram":"\u{f16d}", + "institution":"\u{f19c}", + "ioxhost":"\u{f208}", + "italic":"\u{f033}", + "joomla":"\u{f1aa}", + "jpy":"\u{f157}", + "jsfiddle":"\u{f1cc}", + "key":"\u{f084}", + "keyboard-o":"\u{f11c}", + "krw":"\u{f159}", + "language":"\u{f1ab}", + "laptop":"\u{f109}", + "lastfm":"\u{f202}", + "lastfm-square":"\u{f203}", + "leaf":"\u{f06c}", + "leanpub":"\u{f212}", + "legal":"\u{f0e3}", + "lemon-o":"\u{f094}", + "level-down":"\u{f149}", + "level-up":"\u{f148}", + "life-bouy":"\u{f1cd}", + "life-buoy":"\u{f1cd}", + "life-ring":"\u{f1cd}", + "life-saver":"\u{f1cd}", + "lightbulb-o":"\u{f0eb}", + "line-chart":"\u{f201}", + "link":"\u{f0c1}", + "linkedin":"\u{f0e1}", + "linkedin-square":"\u{f08c}", + "linux":"\u{f17c}", + "list":"\u{f03a}", + "list-alt":"\u{f022}", + "list-ol":"\u{f0cb}", + "list-ul":"\u{f0ca}", + "location-arrow":"\u{f124}", + "lock":"\u{f023}", + "long-arrow-down":"\u{f175}", + "long-arrow-left":"\u{f177}", + "long-arrow-right":"\u{f178}", + "long-arrow-up":"\u{f176}", + "magic":"\u{f0d0}", + "magnet":"\u{f076}", + "mail-forward":"\u{f064}", + "mail-reply":"\u{f112}", + "mail-reply-all":"\u{f122}", + "male":"\u{f183}", + "map-marker":"\u{f041}", + "mars":"\u{f222}", + "mars-double":"\u{f227}", + "mars-stroke":"\u{f229}", + "mars-stroke-h":"\u{f22b}", + "mars-stroke-v":"\u{f22a}", + "maxcdn":"\u{f136}", + "meanpath":"\u{f20c}", + "medium":"\u{f23a}", + "medkit":"\u{f0fa}", + "meh-o":"\u{f11a}", + "mercury":"\u{f223}", + "microphone":"\u{f130}", + "microphone-slash":"\u{f131}", + "minus":"\u{f068}", + "minus-circle":"\u{f056}", + "minus-square":"\u{f146}", + "minus-square-o":"\u{f147}", + "mobile":"\u{f10b}", + "mobile-phone":"\u{f10b}", + "money":"\u{f0d6}", + "moon-o":"\u{f186}", + "mortar-board":"\u{f19d}", + "motorcycle":"\u{f21c}", + "music":"\u{f001}", + "navicon":"\u{f0c9}", + "neuter":"\u{f22c}", + "newspaper-o":"\u{f1ea}", + "openid":"\u{f19b}", + "outdent":"\u{f03b}", + "pagelines":"\u{f18c}", + "paint-brush":"\u{f1fc}", + "paper-plane":"\u{f1d8}", + "paper-plane-o":"\u{f1d9}", + "paperclip":"\u{f0c6}", + "paragraph":"\u{f1dd}", + "paste":"\u{f0ea}", + "pause":"\u{f04c}", + "paw":"\u{f1b0}", + "paypal":"\u{f1ed}", + "pencil":"\u{f040}", + "pencil-square":"\u{f14b}", + "pencil-square-o":"\u{f044}", + "phone":"\u{f095}", + "phone-square":"\u{f098}", + "photo":"\u{f03e}", + "picture-o":"\u{f03e}", + "pie-chart":"\u{f200}", + "pied-piper":"\u{f1a7}", + "pied-piper-alt":"\u{f1a8}", + "pinterest":"\u{f0d2}", + "pinterest-p":"\u{f231}", + "pinterest-square":"\u{f0d3}", + "plane":"\u{f072}", + "play":"\u{f04b}", + "play-circle":"\u{f144}", + "play-circle-o":"\u{f01d}", + "plug":"\u{f1e6}", + "plus":"\u{f067}", + "plus-circle":"\u{f055}", + "plus-square":"\u{f0fe}", + "plus-square-o":"\u{f196}", + "power-off":"\u{f011}", + "print":"\u{f02f}", + "puzzle-piece":"\u{f12e}", + "qq":"\u{f1d6}", + "qrcode":"\u{f029}", + "question":"\u{f128}", + "question-circle":"\u{f059}", + "quote-left":"\u{f10d}", + "quote-right":"\u{f10e}", + "ra":"\u{f1d0}", + "random":"\u{f074}", + "rebel":"\u{f1d0}", + "recycle":"\u{f1b8}", + "reddit":"\u{f1a1}", + "reddit-square":"\u{f1a2}", + "refresh":"\u{f021}", + "remove":"\u{f00d}", + "renren":"\u{f18b}", + "reorder":"\u{f0c9}", + "repeat":"\u{f01e}", + "reply":"\u{f112}", + "reply-all":"\u{f122}", + "retweet":"\u{f079}", + "rmb":"\u{f157}", + "road":"\u{f018}", + "rocket":"\u{f135}", + "rotate-left":"\u{f0e2}", + "rotate-right":"\u{f01e}", + "rouble":"\u{f158}", + "rss":"\u{f09e}", + "rss-square":"\u{f143}", + "rub":"\u{f158}", + "ruble":"\u{f158}", + "rupee":"\u{f156}", + "save":"\u{f0c7}", + "scissors":"\u{f0c4}", + "search":"\u{f002}", + "search-minus":"\u{f010}", + "search-plus":"\u{f00e}", + "sellsy":"\u{f213}", + "send":"\u{f1d8}", + "send-o":"\u{f1d9}", + "server":"\u{f233}", + "share":"\u{f064}", + "share-alt":"\u{f1e0}", + "share-alt-square":"\u{f1e1}", + "share-square":"\u{f14d}", + "share-square-o":"\u{f045}", + "shekel":"\u{f20b}", + "sheqel":"\u{f20b}", + "shield":"\u{f132}", + "ship":"\u{f21a}", + "shirtsinbulk":"\u{f214}", + "shopping-cart":"\u{f07a}", + "sign-in":"\u{f090}", + "sign-out":"\u{f08b}", + "signal":"\u{f012}", + "simplybuilt":"\u{f215}", + "sitemap":"\u{f0e8}", + "skyatlas":"\u{f216}", + "skype":"\u{f17e}", + "slack":"\u{f198}", + "sliders":"\u{f1de}", + "slideshare":"\u{f1e7}", + "smile-o":"\u{f118}", + "soccer-ball-o":"\u{f1e3}", + "sort":"\u{f0dc}", + "sort-alpha-asc":"\u{f15d}", + "sort-alpha-desc":"\u{f15e}", + "sort-amount-asc":"\u{f160}", + "sort-amount-desc":"\u{f161}", + "sort-asc":"\u{f0de}", + "sort-desc":"\u{f0dd}", + "sort-down":"\u{f0dd}", + "sort-numeric-asc":"\u{f162}", + "sort-numeric-desc":"\u{f163}", + "sort-up":"\u{f0de}", + "soundcloud":"\u{f1be}", + "space-shuttle":"\u{f197}", + "spinner":"\u{f110}", + "spoon":"\u{f1b1}", + "spotify":"\u{f1bc}", + "square":"\u{f0c8}", + "square-o":"\u{f096}", + "stack-exchange":"\u{f18d}", + "stack-overflow":"\u{f16c}", + "star":"\u{f005}", + "star-half":"\u{f089}", + "star-half-empty":"\u{f123}", + "star-half-full":"\u{f123}", + "star-half-o":"\u{f123}", + "star-o":"\u{f006}", + "steam":"\u{f1b6}", + "steam-square":"\u{f1b7}", + "step-backward":"\u{f048}", + "step-forward":"\u{f051}", + "stethoscope":"\u{f0f1}", + "stop":"\u{f04d}", + "street-view":"\u{f21d}", + "strikethrough":"\u{f0cc}", + "stumbleupon":"\u{f1a4}", + "stumbleupon-circle":"\u{f1a3}", + "subscript":"\u{f12c}", + "subway":"\u{f239}", + "suitcase":"\u{f0f2}", + "sun-o":"\u{f185}", + "superscript":"\u{f12b}", + "support":"\u{f1cd}", + "table":"\u{f0ce}", + "tablet":"\u{f10a}", + "tachometer":"\u{f0e4}", + "tag":"\u{f02b}", + "tags":"\u{f02c}", + "tasks":"\u{f0ae}", + "taxi":"\u{f1ba}", + "tencent-weibo":"\u{f1d5}", + "terminal":"\u{f120}", + "text-height":"\u{f034}", + "text-width":"\u{f035}", + "th":"\u{f00a}", + "th-large":"\u{f009}", + "th-list":"\u{f00b}", + "thumb-tack":"\u{f08d}", + "thumbs-down":"\u{f165}", + "thumbs-o-down":"\u{f088}", + "thumbs-o-up":"\u{f087}", + "thumbs-up":"\u{f164}", + "ticket":"\u{f145}", + "times":"\u{f00d}", + "times-circle":"\u{f057}", + "times-circle-o":"\u{f05c}", + "tint":"\u{f043}", + "toggle-down":"\u{f150}", + "toggle-left":"\u{f191}", + "toggle-off":"\u{f204}", + "toggle-on":"\u{f205}", + "toggle-right":"\u{f152}", + "toggle-up":"\u{f151}", + "train":"\u{f238}", + "transgender":"\u{f224}", + "transgender-alt":"\u{f225}", + "trash":"\u{f1f8}", + "trash-o":"\u{f014}", + "tree":"\u{f1bb}", + "trello":"\u{f181}", + "trophy":"\u{f091}", + "truck":"\u{f0d1}", + "try":"\u{f195}", + "tty":"\u{f1e4}", + "tumblr":"\u{f173}", + "tumblr-square":"\u{f174}", + "turkish-lira":"\u{f195}", + "twitch":"\u{f1e8}", + "twitter":"\u{f099}", + "twitter-square":"\u{f081}", + "umbrella":"\u{f0e9}", + "underline":"\u{f0cd}", + "undo":"\u{f0e2}", + "university":"\u{f19c}", + "unlink":"\u{f127}", + "unlock":"\u{f09c}", + "unlock-alt":"\u{f13e}", + "unsorted":"\u{f0dc}", + "upload":"\u{f093}", + "usd":"\u{f155}", + "user":"\u{f007}", + "user-md":"\u{f0f0}", + "user-plus":"\u{f234}", + "user-secret":"\u{f21b}", + "user-times":"\u{f235}", + "users":"\u{f0c0}", + "venus":"\u{f221}", + "venus-double":"\u{f226}", + "venus-mars":"\u{f228}", + "viacoin":"\u{f237}", + "video-camera":"\u{f03d}", + "vimeo-square":"\u{f194}", + "vine":"\u{f1ca}", + "vk":"\u{f189}", + "volume-down":"\u{f027}", + "volume-off":"\u{f026}", + "volume-up":"\u{f028}", + "warning":"\u{f071}", + "wechat":"\u{f1d7}", + "weibo":"\u{f18a}", + "weixin":"\u{f1d7}", + "whatsapp":"\u{f232}", + "wheelchair":"\u{f193}", + "wifi":"\u{f1eb}", + "windows":"\u{f17a}", + "won":"\u{f159}", + "wordpress":"\u{f19a}", + "wrench":"\u{f0ad}", + "xing":"\u{f168}", + "xing-square":"\u{f169}", + "yahoo":"\u{f19e}", + "yelp":"\u{f1e9}", + "yen":"\u{f157}", + "youtube":"\u{f167}", + "youtube-play":"\u{f16a}" +] diff --git a/SmoothButton/SmoothButton/SwiftIconFont/FontLoader.swift b/SmoothButton/SmoothButton/SwiftIconFont/FontLoader.swift new file mode 100755 index 0000000..4054a66 --- /dev/null +++ b/SmoothButton/SmoothButton/SwiftIconFont/FontLoader.swift @@ -0,0 +1,45 @@ +// +// FontLoader.swift +// SwiftIconFont +// +// Created by Sedat Ciftci on 18/03/16. +// Copyright © 2016 Sedat Gokbek Ciftci. All rights reserved. +// + +import UIKit +import Foundation +import CoreText + +class FontLoader: NSObject { + class func loadFont(_ fontName: String) { + + let bundle = Bundle(for: FontLoader.self) + var fontURL = URL(string: "") + for filePath : String in bundle.paths(forResourcesOfType: "ttf", inDirectory: nil) { + let filename = NSURL(fileURLWithPath: filePath).lastPathComponent! + if filename.lowercased().range(of: fontName.lowercased()) != nil { + fontURL = NSURL(fileURLWithPath: filePath) as URL + } + } + + do + { + let data = try Data(contentsOf: fontURL!) + + let provider = CGDataProvider(data: data as CFData) + let font = CGFont.init(provider!) + + var error: Unmanaged? + if !CTFontManagerRegisterGraphicsFont(font!, &error) { + let errorDescription: CFString = CFErrorCopyDescription(error!.takeUnretainedValue()) + let nsError = error!.takeUnretainedValue() as AnyObject as! NSError + NSException(name: NSExceptionName.internalInconsistencyException, reason: errorDescription as String, userInfo: [NSUnderlyingErrorKey: nsError]).raise() + } + + } catch { + + } + + + } +} diff --git a/SmoothButton/SmoothButton/SwiftIconFont/Iconic.swift b/SmoothButton/SmoothButton/SwiftIconFont/Iconic.swift new file mode 100755 index 0000000..48bf909 --- /dev/null +++ b/SmoothButton/SmoothButton/SwiftIconFont/Iconic.swift @@ -0,0 +1,235 @@ +// +// NSString+Iconic.swift +// SwiftIconFont +// +// Created by Sedat Ciftci on 18/03/16. +// Copyright © 2016 Sedat Gokbek Ciftci. All rights reserved. +// + +import UIKit + +public let iconicIconArr: [String: String] = [ + "account-login":"\u{e000}", + "account-logout":"\u{e001}", + "action-redo":"\u{e002}", + "action-undo":"\u{e003}", + "align-center":"\u{e004}", + "align-left":"\u{e005}", + "align-right":"\u{e006}", + "aperture":"\u{e007}", + "arrow-bottom":"\u{e008}", + "arrow-circle-bottom":"\u{e009}", + "arrow-circle-left":"\u{e00a}", + "arrow-circle-right":"\u{e00b}", + "arrow-circle-top":"\u{e00c}", + "arrow-left":"\u{e00d}", + "arrow-right":"\u{e00e}", + "arrow-thick-bottom":"\u{e00f}", + "arrow-thick-left":"\u{e010}", + "arrow-thick-right":"\u{e011}", + "arrow-thick-top":"\u{e012}", + "arrow-top":"\u{e013}", + "audio-spectrum":"\u{e014}", + "audio":"\u{e015}", + "badge":"\u{e016}", + "ban":"\u{e017}", + "bar-chart":"\u{e018}", + "basket":"\u{e019}", + "battery-empty":"\u{e01a}", + "battery-full":"\u{e01b}", + "beaker":"\u{e01c}", + "bell":"\u{e01d}", + "bluetooth":"\u{e01e}", + "bold":"\u{e01f}", + "bolt":"\u{e020}", + "book":"\u{e021}", + "bookmark":"\u{e022}", + "box":"\u{e023}", + "briefcase":"\u{e024}", + "british-pound":"\u{e025}", + "browser":"\u{e026}", + "brush":"\u{e027}", + "bug":"\u{e028}", + "bullhorn":"\u{e029}", + "calculator":"\u{e02a}", + "calendar":"\u{e02b}", + "camera-slr":"\u{e02c}", + "caret-bottom":"\u{e02d}", + "caret-left":"\u{e02e}", + "caret-right":"\u{e02f}", + "caret-top":"\u{e030}", + "cart":"\u{e031}", + "chat":"\u{e032}", + "check":"\u{e033}", + "chevron-bottom":"\u{e034}", + "chevron-left":"\u{e035}", + "chevron-right":"\u{e036}", + "chevron-top":"\u{e037}", + "circle-check":"\u{e08}", + "circle-x":"\u{e039}", + "clipboard":"\u{e03a}", + "clock":"\u{e03b}", + "cloud-download":"\u{e03c}", + "cloud-upload":"\u{e03d}", + "cloud":"\u{e03e}", + "cloudy":"\u{e03f}", + "code":"\u{e040}", + "cog":"\u{e041}", + "collapse-down":"\u{e042}", + "collapse-left":"\u{e043}", + "collapse-right":"\u{e044}", + "collapse-up":"\u{e045}", + "command":"\u{e046}", + "comment-square":"\u{e047}", + "compass":"\u{e048}", + "contrast":"\u{e049}", + "copywriting":"\u{e04a}", + "credit-card":"\u{e04b}", + "crop":"\u{e04c}", + "dashboard":"\u{e04d}", + "data-transfer-download":"\u{e04e}", + "data-transfer-upload":"\u{e04f}", + "delete":"\u{e050}", + "dial":"\u{e051}", + "document":"\u{e052}", + "dollar":"\u{e053}", + "double-quote-sans-left":"\u{e054}", + "double-quote-sans-right":"\u{e055}", + "double-quote-serif-left":"\u{e056}", + "double-quote-serif-right":"\u{e057}", + "droplet":"\u{e058}", + "eject":"\u{e059}", + "elevator":"\u{e05a}", + "ellipses":"\u{e05b}", + "envelope-closed":"\u{e05c}", + "envelope-open":"\u{e05d}", + "euro":"\u{e05e}", + "excerpt":"\u{e05f}", + "expand-down":"\u{e060}", + "expand-left":"\u{e061}", + "expand-right":"\u{e062}", + "expand-up":"\u{e063}", + "external-link":"\u{e064}", + "eye":"\u{e065}", + "eyedropper":"\u{e066}", + "file":"\u{e067}", + "fire":"\u{e068}", + "flag":"\u{e069}", + "flash":"\u{e06a}", + "folder":"\u{e06b}", + "fork":"\u{e06c}", + "fullscreen-enter":"\u{e06d}", + "fullscreen-exit":"\u{e06e}", + "globe":"\u{e06f}", + "graph":"\u{e070}", + "grid-four-up":"\u{e071}", + "grid-three-up":"\u{e072}", + "grid-two-up":"\u{e073}", + "hard-drive":"\u{e074}", + "header":"\u{e075}", + "headphones":"\u{e076}", + "heart":"\u{e077}", + "home":"\u{e078}", + "image":"\u{e079}", + "inbox":"\u{e07a}", + "infinity":"\u{e07b}", + "info":"\u{e07c}", + "italic":"\u{e07d}", + "justify-center":"\u{e07e}", + "justify-left":"\u{e07f}", + "justify-right":"\u{e080}", + "key":"\u{e081}", + "laptop":"\u{e082}", + "layers":"\u{e083}", + "lightbulb":"\u{e084}", + "link-broken":"\u{e085}", + "link-intact":"\u{e086}", + "list-rich":"\u{e087}", + "list":"\u{e088}", + "location":"\u{e089}", + "lock-locked":"\u{e08a}", + "lock-unlocked":"\u{e08b}", + "loop-circular":"\u{e08c}", + "loop-square":"\u{e08d}", + "loop":"\u{e08e}", + "magnifying-glass":"\u{e08f}", + "map-marker":"\u{e090}", + "map":"\u{e091}", + "media-pause":"\u{e092}", + "media-play":"\u{e093}", + "media-record":"\u{e094}", + "media-skip-backward":"\u{e095}", + "media-skip-forward":"\u{e096}", + "media-step-backward":"\u{e097}", + "media-step-forward":"\u{e098}", + "media-stop":"\u{e099}", + "medical-cross":"\u{e09a}", + "menu":"\u{e09b}", + "microphone":"\u{e09c}", + "minus":"\u{e09d}", + "monitor":"\u{e09e}", + "moon":"\u{e09f}", + "move":"\u{e0a0}", + "musical-note":"\u{e0a1}", + "paperclip":"\u{e0a2}", + "pencil":"\u{e0a3}", + "people":"\u{e0a4}", + "person":"\u{e0a5}", + "phone":"\u{e0a6}", + "pie-chart":"\u{e0a7}", + "pin":"\u{e0a8}", + "play-circle":"\u{e0a9}", + "plus":"\u{e0aa}", + "power-standby":"\u{e0ab}", + "print":"\u{e0ac}", + "project":"\u{e0ad}", + "pulse":"\u{e0ae}", + "puzzle-piece":"\u{e0af}", + "question-mark":"\u{e0b0}", + "rain":"\u{e0b1}", + "random":"\u{e0b2}", + "reload":"\u{e0b3}", + "resize-both":"\u{e0b4}", + "resize-height":"\u{e0b5}", + "resize-width":"\u{e0b6}", + "rss-alt":"\u{e0b7}", + "rss":"\u{e0b8}", + "script":"\u{e0b9}", + "share-boxed":"\u{e0ba}", + "share":"\u{e0bb}", + "shield":"\u{e0bc}", + "signal":"\u{e0bd}", + "signpost":"\u{e0be}", + "sort-ascending":"\u{e0bf}", + "sort-descending":"\u{e0c0}", + "spreadsheet":"\u{e0c1}", + "star":"\u{e0c2}", + "sun":"\u{e0c3}", + "tablet":"\u{e0c4}", + "tag":"\u{e0c5}", + "tags":"\u{e0c6}", + "target":"\u{e0c7}", + "task":"\u{e0c8}", + "terminal":"\u{e0c9}", + "text":"\u{e0ca}", + "thumb-down":"\u{e0cb}", + "thumb-up":"\u{e0cc}", + "timer":"\u{e0cd}", + "transfer":"\u{e0ce}", + "trash":"\u{e0cf}", + "underline":"\u{e0d0}", + "vertical-align-bottom":"\u{e0d1}", + "vertical-align-center":"\u{e0d2}", + "vertical-align-top":"\u{e0d3}", + "video":"\u{e0d4}", + "volume-high":"\u{e0d5}", + "volume-low":"\u{e0d6}", + "volume-off":"\u{e0d7}", + "warning":"\u{e0d8}", + "wifi":"\u{e0d9}", + "wrench":"\u{e0da}", + "x":"\u{e0db}", + "yen":"\u{e0dc}", + "zoom-in":"\u{e0dd}", + "zoom-out":"\u{e0de}" +] diff --git a/SmoothButton/SmoothButton/SwiftIconFont/IonIcons.swift b/SmoothButton/SmoothButton/SwiftIconFont/IonIcons.swift new file mode 100755 index 0000000..9409416 --- /dev/null +++ b/SmoothButton/SmoothButton/SwiftIconFont/IonIcons.swift @@ -0,0 +1,745 @@ +// +// NSString+IonIcons.swift +// SwiftIconFont +// +// Created by Sedat Ciftci on 18/03/16. +// Copyright © 2016 Sedat Gokbek Ciftci. All rights reserved. +// + +import UIKit + +public let ioniconArr: [String: String] = [ + "alert":"\u{f101}", + "alert-circled":"\u{f100}", + "android-add":"\u{f2c7}", + "android-add-circle":"\u{f359}", + "android-alarm-clock":"\u{f35a}", + "android-alert":"\u{f35b}", + "android-apps":"\u{f35c}", + "android-archive":"\u{f2c9}", + "android-arrow-back":"\u{f2ca}", + "android-arrow-down":"\u{f35d}", + "android-arrow-dropdown":"\u{f35f}", + "android-arrow-dropdown-circle":"\u{f35e}", + "android-arrow-dropleft":"\u{f361}", + "android-arrow-dropleft-circle":"\u{f360}", + "android-arrow-dropright":"\u{f363}", + "android-arrow-dropright-circle":"\u{f362}", + "android-arrow-dropup":"\u{f365}", + "android-arrow-dropup-circle":"\u{f364}", + "android-arrow-forward":"\u{f30f}", + "android-arrow-up":"\u{f366}", + "android-attach":"\u{f367}", + "android-bar":"\u{f368}", + "android-bicycle":"\u{f369}", + "android-boat":"\u{f36a}", + "android-bookmark":"\u{f36b}", + "android-bulb":"\u{f36c}", + "android-bus":"\u{f36d}", + "android-calendar":"\u{f2d1}", + "android-call":"\u{f2d2}", + "android-camera":"\u{f2d3}", + "android-cancel":"\u{f36e}", + "android-car":"\u{f36f}", + "android-cart":"\u{f370}", + "android-chat":"\u{f2d4}", + "android-checkbox":"\u{f374}", + "android-checkbox-blank":"\u{f371}", + "android-checkbox-outline":"\u{f373}", + "android-checkbox-outline-blank":"\u{f372}", + "android-checkmark-circle":"\u{f375}", + "android-clipboard":"\u{f376}", + "android-close":"\u{f2d7}", + "android-cloud":"\u{f37a}", + "android-cloud-circle":"\u{f377}", + "android-cloud-done":"\u{f378}", + "android-cloud-outline":"\u{f379}", + "android-color-palette":"\u{f37b}", + "android-compass":"\u{f37c}", + "android-contact":"\u{f2d8}", + "android-contacts":"\u{f2d9}", + "android-contract":"\u{f37d}", + "android-create":"\u{f37e}", + "android-delete":"\u{f37f}", + "android-desktop":"\u{f380}", + "android-document":"\u{f381}", + "android-done":"\u{f383}", + "android-done-all":"\u{f382}", + "android-download":"\u{f2dd}", + "android-drafts":"\u{f384}", + "android-exit":"\u{f385}", + "android-expand":"\u{f386}", + "android-favorite":"\u{f388}", + "android-favorite-outline":"\u{f387}", + "android-film":"\u{f389}", + "android-folder":"\u{f2e0}", + "android-folder-open":"\u{f38a}", + "android-funnel":"\u{f38b}", + "android-globe":"\u{f38c}", + "android-hand":"\u{f2e3}", + "android-hangout":"\u{f38d}", + "android-happy":"\u{f38e}", + "android-home":"\u{f38f}", + "android-image":"\u{f2e4}", + "android-laptop":"\u{f390}", + "android-list":"\u{f391}", + "android-locate":"\u{f2e9}", + "android-lock":"\u{f392}", + "android-mail":"\u{f2eb}", + "android-map":"\u{f393}", + "android-menu":"\u{f394}", + "android-microphone":"\u{f2ec}", + "android-microphone-off":"\u{f395}", + "android-more-horizontal":"\u{f396}", + "android-more-vertical":"\u{f397}", + "android-navigate":"\u{f398}", + "android-notifications":"\u{f39b}", + "android-notifications-none":"\u{f399}", + "android-notifications-off":"\u{f39a}", + "android-open":"\u{f39c}", + "android-options":"\u{f39d}", + "android-people":"\u{f39e}", + "android-person":"\u{f3a0}", + "android-person-add":"\u{f39f}", + "android-phone-landscape":"\u{f3a1}", + "android-phone-portrait":"\u{f3a2}", + "android-pin":"\u{f3a3}", + "android-plane":"\u{f3a4}", + "android-playstore":"\u{f2f0}", + "android-print":"\u{f3a5}", + "android-radio-button-off":"\u{f3a6}", + "android-radio-button-on":"\u{f3a7}", + "android-refresh":"\u{f3a8}", + "android-remove":"\u{f2f4}", + "android-remove-circle":"\u{f3a9}", + "android-restaurant":"\u{f3aa}", + "android-sad":"\u{f3ab}", + "android-search":"\u{f2f5}", + "android-send":"\u{f2f6}", + "android-settings":"\u{f2f7}", + "android-share":"\u{f2f8}", + "android-share-alt":"\u{f3ac}", + "android-star":"\u{f2fc}", + "android-star-half":"\u{f3ad}", + "android-star-outline":"\u{f3ae}", + "android-stopwatch":"\u{f2fd}", + "android-subway":"\u{f3af}", + "android-sunny":"\u{f3b0}", + "android-sync":"\u{f3b1}", + "android-textsms":"\u{f3b2}", + "android-time":"\u{f3b3}", + "android-train":"\u{f3b4}", + "android-unlock":"\u{f3b5}", + "android-upload":"\u{f3b6}", + "android-volume-down":"\u{f3b7}", + "android-volume-mute":"\u{f3b8}", + "android-volume-off":"\u{f3b9}", + "android-volume-up":"\u{f3ba}", + "android-walk":"\u{f3bb}", + "android-warning":"\u{f3bc}", + "android-watch":"\u{f3bd}", + "android-wifi":"\u{f305}", + "aperture":"\u{f313}", + "archive":"\u{f102}", + "arrow-down-a":"\u{f103}", + "arrow-down-b":"\u{f104}", + "arrow-down-c":"\u{f105}", + "arrow-expand":"\u{f25e}", + "arrow-graph-down-left":"\u{f25f}", + "arrow-graph-down-right":"\u{f260}", + "arrow-graph-up-left":"\u{f261}", + "arrow-graph-up-right":"\u{f262}", + "arrow-left-a":"\u{f106}", + "arrow-left-b":"\u{f107}", + "arrow-left-c":"\u{f108}", + "arrow-move":"\u{f263}", + "arrow-resize":"\u{f264}", + "arrow-return-left":"\u{f265}", + "arrow-return-right":"\u{f266}", + "arrow-right-a":"\u{f109}", + "arrow-right-b":"\u{f10a}", + "arrow-right-c":"\u{f10b}", + "arrow-shrink":"\u{f267}", + "arrow-swap":"\u{f268}", + "arrow-up-a":"\u{f10c}", + "arrow-up-b":"\u{f10d}", + "arrow-up-c":"\u{f10e}", + "asterisk":"\u{f314}", + "at":"\u{f10f}", + "backspace":"\u{f3bf}", + "backspace-outline":"\u{f3be}", + "bag":"\u{f110}", + "battery-charging":"\u{f111}", + "battery-empty":"\u{f112}", + "battery-full":"\u{f113}", + "battery-half":"\u{f114}", + "battery-low":"\u{f115}", + "beaker":"\u{f269}", + "beer":"\u{f26a}", + "bluetooth":"\u{f116}", + "bonfire":"\u{f315}", + "bookmark":"\u{f26b}", + "bowtie":"\u{f3c0}", + "briefcase":"\u{f26c}", + "bug":"\u{f2be}", + "calculator":"\u{f26d}", + "calendar":"\u{f117}", + "camera":"\u{f118}", + "card":"\u{f119}", + "cash":"\u{f316}", + "chatbox":"\u{f11b}", + "chatbox-working":"\u{f11a}", + "chatboxes":"\u{f11c}", + "chatbubble":"\u{f11e}", + "chatbubble-working":"\u{f11d}", + "chatbubbles":"\u{f11f}", + "checkmark":"\u{f122}", + "checkmark-circled":"\u{f120}", + "checkmark-round":"\u{f121}", + "chevron-down":"\u{f123}", + "chevron-left":"\u{f124}", + "chevron-right":"\u{f125}", + "chevron-up":"\u{f126}", + "clipboard":"\u{f127}", + "clock":"\u{f26e}", + "close":"\u{f12a}", + "close-circled":"\u{f128}", + "close-round":"\u{f129}", + "closed-captioning":"\u{f317}", + "cloud":"\u{f12b}", + "code":"\u{f271}", + "code-download":"\u{f26f}", + "code-working":"\u{f270}", + "coffee":"\u{f272}", + "compass":"\u{f273}", + "compose":"\u{f12c}", + "connection-bars":"\u{f274}", + "contrast":"\u{f275}", + "crop":"\u{f3c1}", + "cube":"\u{f318}", + "disc":"\u{f12d}", + "document":"\u{f12f}", + "document-text":"\u{f12e}", + "drag":"\u{f130}", + "earth":"\u{f276}", + "easel":"\u{f3c2}", + "edit":"\u{f2bf}", + "egg":"\u{f277}", + "eject":"\u{f131}", + "email":"\u{f132}", + "email-unread":"\u{f3c3}", + "erlenmeyer-flask":"\u{f3c5}", + "erlenmeyer-flask-bubbles":"\u{f3c4}", + "eye":"\u{f133}", + "eye-disabled":"\u{f306}", + "female":"\u{f278}", + "filing":"\u{f134}", + "film-marker":"\u{f135}", + "fireball":"\u{f319}", + "flag":"\u{f279}", + "flame":"\u{f31a}", + "flash":"\u{f137}", + "flash-off":"\u{f136}", + "folder":"\u{f139}", + "fork":"\u{f27a}", + "fork-repo":"\u{f2c0}", + "forward":"\u{f13a}", + "funnel":"\u{f31b}", + "gear-a":"\u{f13d}", + "gear-b":"\u{f13e}", + "grid":"\u{f13f}", + "hammer":"\u{f27b}", + "happy":"\u{f31c}", + "happy-outline":"\u{f3c6}", + "headphone":"\u{f140}", + "heart":"\u{f141}", + "heart-broken":"\u{f31d}", + "help":"\u{f143}", + "help-buoy":"\u{f27c}", + "help-circled":"\u{f142}", + "home":"\u{f144}", + "icecream":"\u{f27d}", + "image":"\u{f147}", + "images":"\u{f148}", + "information":"\u{f14a}", + "information-circled":"\u{f149}", + "ionic":"\u{f14b}", + "ios-alarm":"\u{f3c8}", + "ios-alarm-outline":"\u{f3c7}", + "ios-albums":"\u{f3ca}", + "ios-albums-outline":"\u{f3c9}", + "ios-americanfootball":"\u{f3cc}", + "ios-americanfootball-outline":"\u{f3cb}", + "ios-analytics":"\u{f3ce}", + "ios-analytics-outline":"\u{f3cd}", + "ios-arrow-back":"\u{f3cf}", + "ios-arrow-down":"\u{f3d0}", + "ios-arrow-forward":"\u{f3d1}", + "ios-arrow-left":"\u{f3d2}", + "ios-arrow-right":"\u{f3d3}", + "ios-arrow-thin-down":"\u{f3d4}", + "ios-arrow-thin-left":"\u{f3d5}", + "ios-arrow-thin-right":"\u{f3d6}", + "ios-arrow-thin-up":"\u{f3d7}", + "ios-arrow-up":"\u{f3d8}", + "ios-at":"\u{f3da}", + "ios-at-outline":"\u{f3d9}", + "ios-barcode":"\u{f3dc}", + "ios-barcode-outline":"\u{f3db}", + "ios-baseball":"\u{f3de}", + "ios-baseball-outline":"\u{f3dd}", + "ios-basketball":"\u{f3e0}", + "ios-basketball-outline":"\u{f3df}", + "ios-bell":"\u{f3e2}", + "ios-bell-outline":"\u{f3e1}", + "ios-body":"\u{f3e4}", + "ios-body-outline":"\u{f3e3}", + "ios-bolt":"\u{f3e6}", + "ios-bolt-outline":"\u{f3e5}", + "ios-book":"\u{f3e8}", + "ios-book-outline":"\u{f3e7}", + "ios-bookmarks":"\u{f3ea}", + "ios-bookmarks-outline":"\u{f3e9}", + "ios-box":"\u{f3ec}", + "ios-box-outline":"\u{f3eb}", + "ios-briefcase":"\u{f3ee}", + "ios-briefcase-outline":"\u{f3ed}", + "ios-browsers":"\u{f3f0}", + "ios-browsers-outline":"\u{f3ef}", + "ios-calculator":"\u{f3f2}", + "ios-calculator-outline":"\u{f3f1}", + "ios-calendar":"\u{f3f4}", + "ios-calendar-outline":"\u{f3f3}", + "ios-camera":"\u{f3f6}", + "ios-camera-outline":"\u{f3f5}", + "ios-cart":"\u{f3f8}", + "ios-cart-outline":"\u{f3f7}", + "ios-chatboxes":"\u{f3fa}", + "ios-chatboxes-outline":"\u{f3f9}", + "ios-chatbubble":"\u{f3fc}", + "ios-chatbubble-outline":"\u{f3fb}", + "ios-checkmark":"\u{f3ff}", + "ios-checkmark-empty":"\u{f3fd}", + "ios-checkmark-outline":"\u{f3fe}", + "ios-circle-filled":"\u{f400}", + "ios-circle-outline":"\u{f401}", + "ios-clock":"\u{f403}", + "ios-clock-outline":"\u{f402}", + "ios-close":"\u{f406}", + "ios-close-empty":"\u{f404}", + "ios-close-outline":"\u{f405}", + "ios-cloud":"\u{f40c}", + "ios-cloud-download":"\u{f408}", + "ios-cloud-download-outline":"\u{f407}", + "ios-cloud-outline":"\u{f409}", + "ios-cloud-upload":"\u{f40b}", + "ios-cloud-upload-outline":"\u{f40a}", + "ios-cloudy":"\u{f410}", + "ios-cloudy-night":"\u{f40e}", + "ios-cloudy-night-outline":"\u{f40d}", + "ios-cloudy-outline":"\u{f40f}", + "ios-cog":"\u{f412}", + "ios-cog-outline":"\u{f411}", + "ios-color-filter":"\u{f414}", + "ios-color-filter-outline":"\u{f413}", + "ios-color-wand":"\u{f416}", + "ios-color-wand-outline":"\u{f415}", + "ios-compose":"\u{f418}", + "ios-compose-outline":"\u{f417}", + "ios-contact":"\u{f41a}", + "ios-contact-outline":"\u{f419}", + "ios-copy":"\u{f41c}", + "ios-copy-outline":"\u{f41b}", + "ios-crop":"\u{f41e}", + "ios-crop-strong":"\u{f41d}", + "ios-download":"\u{f420}", + "ios-download-outline":"\u{f41f}", + "ios-drag":"\u{f421}", + "ios-email":"\u{f423}", + "ios-email-outline":"\u{f422}", + "ios-eye":"\u{f425}", + "ios-eye-outline":"\u{f424}", + "ios-fastforward":"\u{f427}", + "ios-fastforward-outline":"\u{f426}", + "ios-filing":"\u{f429}", + "ios-filing-outline":"\u{f428}", + "ios-film":"\u{f42b}", + "ios-film-outline":"\u{f42a}", + "ios-flag":"\u{f42d}", + "ios-flag-outline":"\u{f42c}", + "ios-flame":"\u{f42f}", + "ios-flame-outline":"\u{f42e}", + "ios-flask":"\u{f431}", + "ios-flask-outline":"\u{f430}", + "ios-flower":"\u{f433}", + "ios-flower-outline":"\u{f432}", + "ios-folder":"\u{f435}", + "ios-folder-outline":"\u{f434}", + "ios-football":"\u{f437}", + "ios-football-outline":"\u{f436}", + "ios-game-controller-a":"\u{f439}", + "ios-game-controller-a-outline":"\u{f438}", + "ios-game-controller-b":"\u{f43b}", + "ios-game-controller-b-outline":"\u{f43a}", + "ios-gear":"\u{f43d}", + "ios-gear-outline":"\u{f43c}", + "ios-glasses":"\u{f43f}", + "ios-glasses-outline":"\u{f43e}", + "ios-grid-view":"\u{f441}", + "ios-grid-view-outline":"\u{f440}", + "ios-heart":"\u{f443}", + "ios-heart-outline":"\u{f442}", + "ios-help":"\u{f446}", + "ios-help-empty":"\u{f444}", + "ios-help-outline":"\u{f445}", + "ios-home":"\u{f448}", + "ios-home-outline":"\u{f447}", + "ios-infinite":"\u{f44a}", + "ios-infinite-outline":"\u{f449}", + "ios-information":"\u{f44d}", + "ios-information-empty":"\u{f44b}", + "ios-information-outline":"\u{f44c}", + "ios-ionic-outline":"\u{f44e}", + "ios-keypad":"\u{f450}", + "ios-keypad-outline":"\u{f44f}", + "ios-lightbulb":"\u{f452}", + "ios-lightbulb-outline":"\u{f451}", + "ios-list":"\u{f454}", + "ios-list-outline":"\u{f453}", + "ios-location":"\u{f456}", + "ios-location-outline":"\u{f455}", + "ios-locked":"\u{f458}", + "ios-locked-outline":"\u{f457}", + "ios-loop":"\u{f45a}", + "ios-loop-strong":"\u{f459}", + "ios-medical":"\u{f45c}", + "ios-medical-outline":"\u{f45b}", + "ios-medkit":"\u{f45e}", + "ios-medkit-outline":"\u{f45d}", + "ios-mic":"\u{f461}", + "ios-mic-off":"\u{f45f}", + "ios-mic-outline":"\u{f460}", + "ios-minus":"\u{f464}", + "ios-minus-empty":"\u{f462}", + "ios-minus-outline":"\u{f463}", + "ios-monitor":"\u{f466}", + "ios-monitor-outline":"\u{f465}", + "ios-moon":"\u{f468}", + "ios-moon-outline":"\u{f467}", + "ios-more":"\u{f46a}", + "ios-more-outline":"\u{f469}", + "ios-musical-note":"\u{f46b}", + "ios-musical-notes":"\u{f46c}", + "ios-navigate":"\u{f46e}", + "ios-navigate-outline":"\u{f46d}", + "ios-nutrition":"\u{f470}", + "ios-nutrition-outline":"\u{f46f}", + "ios-paper":"\u{f472}", + "ios-paper-outline":"\u{f471}", + "ios-paperplane":"\u{f474}", + "ios-paperplane-outline":"\u{f473}", + "ios-partlysunny":"\u{f476}", + "ios-partlysunny-outline":"\u{f475}", + "ios-pause":"\u{f478}", + "ios-pause-outline":"\u{f477}", + "ios-paw":"\u{f47a}", + "ios-paw-outline":"\u{f479}", + "ios-people":"\u{f47c}", + "ios-people-outline":"\u{f47b}", + "ios-person":"\u{f47e}", + "ios-person-outline":"\u{f47d}", + "ios-personadd":"\u{f480}", + "ios-personadd-outline":"\u{f47f}", + "ios-photos":"\u{f482}", + "ios-photos-outline":"\u{f481}", + "ios-pie":"\u{f484}", + "ios-pie-outline":"\u{f483}", + "ios-pint":"\u{f486}", + "ios-pint-outline":"\u{f485}", + "ios-play":"\u{f488}", + "ios-play-outline":"\u{f487}", + "ios-plus":"\u{f48b}", + "ios-plus-empty":"\u{f489}", + "ios-plus-outline":"\u{f48a}", + "ios-pricetag":"\u{f48d}", + "ios-pricetag-outline":"\u{f48c}", + "ios-pricetags":"\u{f48f}", + "ios-pricetags-outline":"\u{f48e}", + "ios-printer":"\u{f491}", + "ios-printer-outline":"\u{f490}", + "ios-pulse":"\u{f493}", + "ios-pulse-strong":"\u{f492}", + "ios-rainy":"\u{f495}", + "ios-rainy-outline":"\u{f494}", + "ios-recording":"\u{f497}", + "ios-recording-outline":"\u{f496}", + "ios-redo":"\u{f499}", + "ios-redo-outline":"\u{f498}", + "ios-refresh":"\u{f49c}", + "ios-refresh-empty":"\u{f49a}", + "ios-refresh-outline":"\u{f49b}", + "ios-reload":"\u{f49d}", + "ios-reverse-camera":"\u{f49f}", + "ios-reverse-camera-outline":"\u{f49e}", + "ios-rewind":"\u{f4a1}", + "ios-rewind-outline":"\u{f4a0}", + "ios-rose":"\u{f4a3}", + "ios-rose-outline":"\u{f4a2}", + "ios-search":"\u{f4a5}", + "ios-search-strong":"\u{f4a4}", + "ios-settings":"\u{f4a7}", + "ios-settings-strong":"\u{f4a6}", + "ios-shuffle":"\u{f4a9}", + "ios-shuffle-strong":"\u{f4a8}", + "ios-skipbackward":"\u{f4ab}", + "ios-skipbackward-outline":"\u{f4aa}", + "ios-skipforward":"\u{f4ad}", + "ios-skipforward-outline":"\u{f4ac}", + "ios-snowy":"\u{f4ae}", + "ios-speedometer":"\u{f4b0}", + "ios-speedometer-outline":"\u{f4af}", + "ios-star":"\u{f4b3}", + "ios-star-half":"\u{f4b1}", + "ios-star-outline":"\u{f4b2}", + "ios-stopwatch":"\u{f4b5}", + "ios-stopwatch-outline":"\u{f4b4}", + "ios-sunny":"\u{f4b7}", + "ios-sunny-outline":"\u{f4b6}", + "ios-telephone":"\u{f4b9}", + "ios-telephone-outline":"\u{f4b8}", + "ios-tennisball":"\u{f4bb}", + "ios-tennisball-outline":"\u{f4ba}", + "ios-thunderstorm":"\u{f4bd}", + "ios-thunderstorm-outline":"\u{f4bc}", + "ios-time":"\u{f4bf}", + "ios-time-outline":"\u{f4be}", + "ios-timer":"\u{f4c1}", + "ios-timer-outline":"\u{f4c0}", + "ios-toggle":"\u{f4c3}", + "ios-toggle-outline":"\u{f4c2}", + "ios-trash":"\u{f4c5}", + "ios-trash-outline":"\u{f4c4}", + "ios-undo":"\u{f4c7}", + "ios-undo-outline":"\u{f4c6}", + "ios-unlocked":"\u{f4c9}", + "ios-unlocked-outline":"\u{f4c8}", + "ios-upload":"\u{f4cb}", + "ios-upload-outline":"\u{f4ca}", + "ios-videocam":"\u{f4cd}", + "ios-videocam-outline":"\u{f4cc}", + "ios-volume-high":"\u{f4ce}", + "ios-volume-low":"\u{f4cf}", + "ios-wineglass":"\u{f4d1}", + "ios-wineglass-outline":"\u{f4d0}", + "ios-world":"\u{f4d3}", + "ios-world-outline":"\u{f4d2}", + "ipad":"\u{f1f9}", + "iphone":"\u{f1fa}", + "ipod":"\u{f1fb}", + "jet":"\u{f295}", + "key":"\u{f296}", + "knife":"\u{f297}", + "laptop":"\u{f1fc}", + "leaf":"\u{f1fd}", + "levels":"\u{f298}", + "lightbulb":"\u{f299}", + "link":"\u{f1fe}", + "load-a":"\u{f29a}", + "load-b":"\u{f29b}", + "load-c":"\u{f29c}", + "load-d":"\u{f29d}", + "location":"\u{f1ff}", + "lock-combination":"\u{f4d4}", + "locked":"\u{f200}", + "log-in":"\u{f29e}", + "log-out":"\u{f29f}", + "loop":"\u{f201}", + "magnet":"\u{f2a0}", + "male":"\u{f2a1}", + "man":"\u{f202}", + "map":"\u{f203}", + "medkit":"\u{f2a2}", + "merge":"\u{f33f}", + "mic-a":"\u{f204}", + "mic-b":"\u{f205}", + "mic-c":"\u{f206}", + "minus":"\u{f209}", + "minus-circled":"\u{f207}", + "minus-round":"\u{f208}", + "model-s":"\u{f2c1}", + "monitor":"\u{f20a}", + "more":"\u{f20b}", + "mouse":"\u{f340}", + "music-note":"\u{f20c}", + "navicon":"\u{f20e}", + "navicon-round":"\u{f20d}", + "navigate":"\u{f2a3}", + "network":"\u{f341}", + "no-smoking":"\u{f2c2}", + "nuclear":"\u{f2a4}", + "outlet":"\u{f342}", + "paintbrush":"\u{f4d5}", + "paintbucket":"\u{f4d6}", + "paper-airplane":"\u{f2c3}", + "paperclip":"\u{f20f}", + "pause":"\u{f210}", + "person":"\u{f213}", + "person-add":"\u{f211}", + "person-stalker":"\u{f212}", + "pie-graph":"\u{f2a5}", + "pin":"\u{f2a6}", + "pinpoint":"\u{f2a7}", + "pizza":"\u{f2a8}", + "plane":"\u{f214}", + "planet":"\u{f343}", + "play":"\u{f215}", + "playstation":"\u{f30a}", + "plus":"\u{f218}", + "plus-circled":"\u{f216}", + "plus-round":"\u{f217}", + "podium":"\u{f344}", + "pound":"\u{f219}", + "power":"\u{f2a9}", + "pricetag":"\u{f2aa}", + "pricetags":"\u{f2ab}", + "printer":"\u{f21a}", + "pull-request":"\u{f345}", + "qr-scanner":"\u{f346}", + "quote":"\u{f347}", + "radio-waves":"\u{f2ac}", + "record":"\u{f21b}", + "refresh":"\u{f21c}", + "reply":"\u{f21e}", + "reply-all":"\u{f21d}", + "ribbon-a":"\u{f348}", + "ribbon-b":"\u{f349}", + "sad":"\u{f34a}", + "sad-outline":"\u{f4d7}", + "scissors":"\u{f34b}", + "search":"\u{f21f}", + "settings":"\u{f2ad}", + "share":"\u{f220}", + "shuffle":"\u{f221}", + "skip-backward":"\u{f222}", + "skip-forward":"\u{f223}", + "social-android":"\u{f225}", + "social-android-outline":"\u{f224}", + "social-angular":"\u{f4d9}", + "social-angular-outline":"\u{f4d8}", + "social-apple":"\u{f227}", + "social-apple-outline":"\u{f226}", + "social-bitcoin":"\u{f2af}", + "social-bitcoin-outline":"\u{f2ae}", + "social-buffer":"\u{f229}", + "social-buffer-outline":"\u{f228}", + "social-chrome":"\u{f4db}", + "social-chrome-outline":"\u{f4da}", + "social-codepen":"\u{f4dd}", + "social-codepen-outline":"\u{f4dc}", + "social-css3":"\u{f4df}", + "social-css3-outline":"\u{f4de}", + "social-designernews":"\u{f22b}", + "social-designernews-outline":"\u{f22a}", + "social-dribbble":"\u{f22d}", + "social-dribbble-outline":"\u{f22c}", + "social-dropbox":"\u{f22f}", + "social-dropbox-outline":"\u{f22e}", + "social-euro":"\u{f4e1}", + "social-euro-outline":"\u{f4e0}", + "social-facebook":"\u{f231}", + "social-facebook-outline":"\u{f230}", + "social-foursquare":"\u{f34d}", + "social-foursquare-outline":"\u{f34c}", + "social-freebsd-devil":"\u{f2c4}", + "social-github":"\u{f233}", + "social-github-outline":"\u{f232}", + "social-google":"\u{f34f}", + "social-google-outline":"\u{f34e}", + "social-googleplus":"\u{f235}", + "social-googleplus-outline":"\u{f234}", + "social-hackernews":"\u{f237}", + "social-hackernews-outline":"\u{f236}", + "social-html5":"\u{f4e3}", + "social-html5-outline":"\u{f4e2}", + "social-instagram":"\u{f351}", + "social-instagram-outline":"\u{f350}", + "social-javascript":"\u{f4e5}", + "social-javascript-outline":"\u{f4e4}", + "social-linkedin":"\u{f239}", + "social-linkedin-outline":"\u{f238}", + "social-markdown":"\u{f4e6}", + "social-nodejs":"\u{f4e7}", + "social-octocat":"\u{f4e8}", + "social-pinterest":"\u{f2b1}", + "social-pinterest-outline":"\u{f2b0}", + "social-python":"\u{f4e9}", + "social-reddit":"\u{f23b}", + "social-reddit-outline":"\u{f23a}", + "social-rss":"\u{f23d}", + "social-rss-outline":"\u{f23c}", + "social-sass":"\u{f4ea}", + "social-skype":"\u{f23f}", + "social-skype-outline":"\u{f23e}", + "social-snapchat":"\u{f4ec}", + "social-snapchat-outline":"\u{f4eb}", + "social-tumblr":"\u{f241}", + "social-tumblr-outline":"\u{f240}", + "social-tux":"\u{f2c5}", + "social-twitch":"\u{f4ee}", + "social-twitch-outline":"\u{f4ed}", + "social-twitter":"\u{f243}", + "social-twitter-outline":"\u{f242}", + "social-usd":"\u{f353}", + "social-usd-outline":"\u{f352}", + "social-vimeo":"\u{f245}", + "social-vimeo-outline":"\u{f244}", + "social-whatsapp":"\u{f4f0}", + "social-whatsapp-outline":"\u{f4ef}", + "social-windows":"\u{f247}", + "social-windows-outline":"\u{f246}", + "social-wordpress":"\u{f249}", + "social-wordpress-outline":"\u{f248}", + "social-yahoo":"\u{f24b}", + "social-yahoo-outline":"\u{f24a}", + "social-yen":"\u{f4f2}", + "social-yen-outline":"\u{f4f1}", + "social-youtube":"\u{f24d}", + "social-youtube-outline":"\u{f24c}", + "soup-can":"\u{f4f4}", + "soup-can-outline":"\u{f4f3}", + "speakerphone":"\u{f2b2}", + "speedometer":"\u{f2b3}", + "spoon":"\u{f2b4}", + "star":"\u{f24e}", + "stats-bars":"\u{f2b5}", + "steam":"\u{f30b}", + "stop":"\u{f24f}", + "thermometer":"\u{f2b6}", + "thumbsdown":"\u{f250}", + "thumbsup":"\u{f251}", + "toggle":"\u{f355}", + "toggle-filled":"\u{f354}", + "transgender":"\u{f4f5}", + "trash-a":"\u{f252}", + "trash-b":"\u{f253}", + "trophy":"\u{f356}", + "tshirt":"\u{f4f7}", + "tshirt-outline":"\u{f4f6}", + "umbrella":"\u{f2b7}", + "university":"\u{f357}", + "unlocked":"\u{f254}", + "upload":"\u{f255}", + "usb":"\u{f2b8}", + "videocamera":"\u{f256}", + "volume-high":"\u{f257}", + "volume-low":"\u{f258}", + "volume-medium":"\u{f259}", + "volume-mute":"\u{f25a}", + "wand":"\u{f358}", + "waterdrop":"\u{f25b}", + "wifi":"\u{f25c}", + "wineglass":"\u{f2b9}", + "woman":"\u{f25d}", + "wrench":"\u{f2ba}", + "xbox":"\u{f30c}", +] diff --git a/SmoothButton/SmoothButton/SwiftIconFont/LICENSE b/SmoothButton/SmoothButton/SwiftIconFont/LICENSE new file mode 100755 index 0000000..168e9cf --- /dev/null +++ b/SmoothButton/SmoothButton/SwiftIconFont/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2016 Sedat Gokbek CIFTCI + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/SmoothButton/SmoothButton/SwiftIconFont/MapIcon.swift b/SmoothButton/SmoothButton/SwiftIconFont/MapIcon.swift new file mode 100755 index 0000000..b606809 --- /dev/null +++ b/SmoothButton/SmoothButton/SwiftIconFont/MapIcon.swift @@ -0,0 +1,187 @@ +// +// MapIcons.swift +// Exa +// +// Created by Sedat Gökbek ÇİFTÇİ on 08/07/16. +// Copyright © 2016 Sedat Gökbek ÇİFTÇİ. All rights reserved. +// + +import UIKit + +public let mapIconArr: [String: String] = [ + "map.icon.abseiling":"\u{e800}", + "map.icon.accounting":"\u{e801}", + "map.icon.airport":"\u{e802}", + "map.icon.amusement.park":"\u{e803}", + "map.icon.aquarium":"\u{e804}", + "map.icon.archery":"\u{e805}", + "map.icon.art.gallery":"\u{e806}", + "map.icon.assistive.listening.system":"\u{e807}", + "map.icon.atm":"\u{e808}", + "map.icon.audio.description":"\u{e809}", + "map.icon.bakery":"\u{e80a}", + "map.icon.bank":"\u{e80b}", + "map.icon.bar":"\u{e80c}", + "map.icon.baseball":"\u{e80d}", + "map.icon.beauty.salon":"\u{e80e}", + "map.icon.bicycle.store":"\u{e80f}", + "map.icon.bicycling":"\u{e810}", + "map.icon.boat.ramp":"\u{e811}", + "map.icon.boat.tour":"\u{e812}", + "map.icon.boating":"\u{e813}", + "map.icon.book.store":"\u{e814}", + "map.icon.bowling.alley":"\u{e815}", + "map.icon.braille":"\u{e816}", + "map.icon.bus.station":"\u{e817}", + "map.icon.cafe":"\u{e818}", + "map.icon.campground":"\u{e819}", + "map.icon.canoe":"\u{e81a}", + "map.icon.car.dealer":"\u{e81b}", + "map.icon.car.rental":"\u{e81c}", + "map.icon.car.repair":"\u{e81d}", + "map.icon.car.wash":"\u{e81e}", + "map.icon.casino":"\u{e81f}", + "map.icon.cemetery":"\u{e820}", + "map.icon.chairlift":"\u{e821}", + "map.icon.church":"\u{e822}", + "map.icon.circle":"\u{e823}", + "map.icon.city.hall":"\u{e824}", + "map.icon.climbing":"\u{e825}", + "map.icon.closed.captioning":"\u{e826}", + "map.icon.clothing.store":"\u{e827}", + "map.icon.compass":"\u{e828}", + "map.icon.convenience.store":"\u{e829}", + "map.icon.courthouse":"\u{e82a}", + "map.icon.cross.country.skiing":"\u{e82b}", + "map.icon.crosshairs":"\u{e82c}", + "map.icon.dentist":"\u{e82d}", + "map.icon.department.store":"\u{e82e}", + "map.icon.diving":"\u{e82f}", + "map.icon.doctor":"\u{e830}", + "map.icon.electrician":"\u{e831}", + "map.icon.electronics.store":"\u{e832}", + "map.icon.embassy":"\u{e833}", + "map.icon.expand":"\u{e834}", + "map.icon.female":"\u{e835}", + "map.icon.finance":"\u{e836}", + "map.icon.fire.station":"\u{e837}", + "map.icon.fish.cleaning":"\u{e838}", + "map.icon.fishing.pier":"\u{e839}", + "map.icon.fishing":"\u{e83a}", + "map.icon.florist":"\u{e83b}", + "map.icon.food":"\u{e83c}", + "map.icon.fullscreen":"\u{e83d}", + "map.icon.funeral.home":"\u{e83e}", + "map.icon.furniture.store":"\u{e83f}", + "map.icon.gas.station":"\u{e840}", + "map.icon.general.contractor":"\u{e841}", + "map.icon.golf":"\u{e842}", + "map.icon.grocery.or.supermarket":"\u{e843}", + "map.icon.gym":"\u{e844}", + "map.icon.hair.care":"\u{e845}", + "map.icon.hang.gliding":"\u{e846}", + "map.icon.hardware.store":"\u{e847}", + "map.icon.health":"\u{e848}", + "map.icon.hindu.temple":"\u{e849}", + "map.icon.horse.riding":"\u{e84a}", + "map.icon.hospital":"\u{e84b}", + "map.icon.ice.fishing":"\u{e84c}", + "map.icon.ice.skating":"\u{e84d}", + "map.icon.inline.skating":"\u{e84e}", + "map.icon.insurance.agency":"\u{e84f}", + "map.icon.jet.skiing":"\u{e850}", + "map.icon.jewelry.store":"\u{e851}", + "map.icon.kayaking":"\u{e852}", + "map.icon.laundry":"\u{e853}", + "map.icon.lawyer":"\u{e854}", + "map.icon.library":"\u{e855}", + "map.icon.liquor.store":"\u{e856}", + "map.icon.local.government":"\u{e857}", + "map.icon.location.arrow":"\u{e858}", + "map.icon.locksmith":"\u{e859}", + "map.icon.lodging":"\u{e85a}", + "map.icon.low.vision.access":"\u{e85b}", + "map.icon.male":"\u{e85c}", + "map.icon.map.pin":"\u{e85d}", + "map.icon.marina":"\u{e85e}", + "map.icon.mosque":"\u{e85f}", + "map.icon.motobike.trail":"\u{e860}", + "map.icon.movie.rental":"\u{e861}", + "map.icon.movie.theater":"\u{e862}", + "map.icon.moving.company":"\u{e863}", + "map.icon.museum":"\u{e864}", + "map.icon.natural.feature":"\u{e865}", + "map.icon.night.club":"\u{e866}", + "map.icon.open.captioning":"\u{e867}", + "map.icon.painter":"\u{e868}", + "map.icon.park":"\u{e869}", + "map.icon.parking":"\u{e86a}", + "map.icon.pet.store":"\u{e86b}", + "map.icon.pharmacy":"\u{e86c}", + "map.icon.physiotherapist":"\u{e86d}", + "map.icon.place.of.worship":"\u{e86e}", + "map.icon.playground":"\u{e86f}", + "map.icon.plumber":"\u{e870}", + "map.icon.point.of.interest":"\u{e871}", + "map.icon.police":"\u{e872}", + "map.icon.political":"\u{e873}", + "map.icon.post.box":"\u{e874}", + "map.icon.post.office":"\u{e875}", + "map.icon.postal.code.prefix":"\u{e876}", + "map.icon.postal.code":"\u{e877}", + "map.icon.rafting":"\u{e878}", + "map.icon.real.estate.agency":"\u{e879}", + "map.icon.restaurant":"\u{e87a}", + "map.icon.roofing.contractor":"\u{e87b}", + "map.icon.route.pin":"\u{e87c}", + "map.icon.route":"\u{e87d}", + "map.icon.rv.park":"\u{e87e}", + "map.icon.sailing":"\u{e87f}", + "map.icon.school":"\u{e880}", + "map.icon.scuba.diving":"\u{e881}", + "map.icon.search":"\u{e882}", + "map.icon.shield":"\u{e883}", + "map.icon.shopping.mall":"\u{e884}", + "map.icon.sign.language":"\u{e885}", + "map.icon.skateboarding":"\u{e886}", + "map.icon.ski.jumping":"\u{e887}", + "map.icon.skiing":"\u{e888}", + "map.icon.sledding":"\u{e889}", + "map.icon.snow.shoeing":"\u{e88a}", + "map.icon.snow":"\u{e88b}", + "map.icon.snowboarding":"\u{e88c}", + "map.icon.snowmobile":"\u{e88d}", + "map.icon.spa":"\u{e88e}", + "map.icon.square.pin":"\u{e88f}", + "map.icon.square.rounded":"\u{e890}", + "map.icon.square":"\u{e891}", + "map.icon.stadium":"\u{e892}", + "map.icon.storage":"\u{e893}", + "map.icon.store":"\u{e894}", + "map.icon.subway.station":"\u{e895}", + "map.icon.surfing":"\u{e896}", + "map.icon.swimming":"\u{e897}", + "map.icon.synagogue":"\u{e898}", + "map.icon.taxi.stand":"\u{e899}", + "map.icon.tennis":"\u{e89a}", + "map.icon.toilet":"\u{e89b}", + "map.icon.trail.walking":"\u{e89c}", + "map.icon.train.station":"\u{e89d}", + "map.icon.transit.station":"\u{e89e}", + "map.icon.travel.agency":"\u{e89f}", + "map.icon.unisex":"\u{e8a0}", + "map.icon.university":"\u{e8a1}", + "map.icon.veterinary.care":"\u{e8a2}", + "map.icon.viewing":"\u{e8a3}", + "map.icon.volume.control.telephone":"\u{e8a4}", + "map.icon.walking":"\u{e8a5}", + "map.icon.waterskiing":"\u{e8a6}", + "map.icon.whale.watching":"\u{e8a7}", + "map.icon.wheelchair":"\u{e8a8}", + "map.icon.wind.surfing":"\u{e8a9}", + "map.icon.zoo":"\u{e8aa}", + "map.icon.zoom.in.alt":"\u{e8ab}", + "map.icon.zoom.in":"\u{e8ac}", + "map.icon.zoom.out.alt":"\u{e8ad}", + "map.icon.zoom.out":"\u{e8ae}" +] diff --git a/SmoothButton/SmoothButton/SwiftIconFont/MaterialIcon.swift b/SmoothButton/SmoothButton/SwiftIconFont/MaterialIcon.swift new file mode 100755 index 0000000..8c7b2a2 --- /dev/null +++ b/SmoothButton/SmoothButton/SwiftIconFont/MaterialIcon.swift @@ -0,0 +1,944 @@ +// +// MaterialIcon.swift +// Exa +// +// Created by Sedat Gökbek ÇİFTÇİ on 08/07/16. +// Copyright © 2016 Sedat Gökbek ÇİFTÇİ. All rights reserved. +// + +import UIKit + +public let materialIconArr: [String: String] = [ + "3d.rotation":"\u{e84d}", + "ac.unit":"\u{eb3b}", + "access.alarm":"\u{e190}", + "access.alarms":"\u{e191}", + "access.time":"\u{e192}", + "accessibility":"\u{e84e}", + "accessible":"\u{e914}", + "account.balance":"\u{e84f}", + "account.balance.wallet":"\u{e850}", + "account.box":"\u{e851}", + "account.circle":"\u{e853}", + "adb":"\u{e60e}", + "add":"\u{e145}", + "add.a.photo":"\u{e439}", + "add.alarm":"\u{e193}", + "add.alert":"\u{e003}", + "add.box":"\u{e146}", + "add.circle":"\u{e147}", + "add.circle.outline":"\u{e148}", + "add.location":"\u{e567}", + "add.shopping.cart":"\u{e854}", + "add.to.photos":"\u{e39d}", + "add.to.queue":"\u{e05c}", + "adjust":"\u{e39e}", + "airline.seat.flat":"\u{e630}", + "airline.seat.flat.angled":"\u{e631}", + "airline.seat.individual.suite":"\u{e632}", + "airline.seat.legroom.extra":"\u{e633}", + "airline.seat.legroom.normal":"\u{e634}", + "airline.seat.legroom.reduced":"\u{e635}", + "airline.seat.recline.extra":"\u{e636}", + "airline.seat.recline.normal":"\u{e637}", + "airplanemode.active":"\u{e195}", + "airplanemode.inactive":"\u{e194}", + "airplay":"\u{e055}", + "airport.shuttle":"\u{eb3c}", + "alarm":"\u{e855}", + "alarm.add":"\u{e856}", + "alarm.off":"\u{e857}", + "alarm.on":"\u{e858}", + "album":"\u{e019}", + "all.inclusive":"\u{eb3d}", + "all.out":"\u{e90b}", + "android":"\u{e859}", + "announcement":"\u{e85a}", + "apps":"\u{e5c3}", + "archive":"\u{e149}", + "arrow.back":"\u{e5c4}", + "arrow.downward":"\u{e5db}", + "arrow.drop.down":"\u{e5c5}", + "arrow.drop.down.circle":"\u{e5c6}", + "arrow.drop.up":"\u{e5c7}", + "arrow.forward":"\u{e5c8}", + "arrow.upward":"\u{e5d8}", + "art.track":"\u{e060}", + "aspect.ratio":"\u{e85b}", + "assessment":"\u{e85c}", + "assignment":"\u{e85d}", + "assignment.ind":"\u{e85e}", + "assignment.late":"\u{e85f}", + "assignment.return":"\u{e860}", + "assignment.returned":"\u{e861}", + "assignment.turned.in":"\u{e862}", + "assistant":"\u{e39f}", + "assistant.photo":"\u{e3a0}", + "attach.file":"\u{e226}", + "attach.money":"\u{e227}", + "attachment":"\u{e2bc}", + "audiotrack":"\u{e3a1}", + "autorenew":"\u{e863}", + "av.timer":"\u{e01b}", + "backspace":"\u{e14a}", + "backup":"\u{e864}", + "battery.alert":"\u{e19c}", + "battery.charging.full":"\u{e1a3}", + "battery.full":"\u{e1a4}", + "battery.std":"\u{e1a5}", + "battery.unknown":"\u{e1a6}", + "beach.access":"\u{eb3e}", + "beenhere":"\u{e52d}", + "block":"\u{e14b}", + "bluetooth":"\u{e1a7}", + "bluetooth.audio":"\u{e60f}", + "bluetooth.connected":"\u{e1a8}", + "bluetooth.disabled":"\u{e1a9}", + "bluetooth.searching":"\u{e1aa}", + "blur.circular":"\u{e3a2}", + "blur.linear":"\u{e3a3}", + "blur.off":"\u{e3a4}", + "blur.on":"\u{e3a5}", + "book":"\u{e865}", + "bookmark":"\u{e866}", + "bookmark.border":"\u{e867}", + "border.all":"\u{e228}", + "border.bottom":"\u{e229}", + "border.clear":"\u{e22a}", + "border.color":"\u{e22b}", + "border.horizontal":"\u{e22c}", + "border.inner":"\u{e22d}", + "border.left":"\u{e22e}", + "border.outer":"\u{e22f}", + "border.right":"\u{e230}", + "border.style":"\u{e231}", + "border.top":"\u{e232}", + "border.vertical":"\u{e233}", + "branding.watermark":"\u{e06b}", + "brightness.1":"\u{e3a6}", + "brightness.2":"\u{e3a7}", + "brightness.3":"\u{e3a8}", + "brightness.4":"\u{e3a9}", + "brightness.5":"\u{e3aa}", + "brightness.6":"\u{e3ab}", + "brightness.7":"\u{e3ac}", + "brightness.auto":"\u{e1ab}", + "brightness.high":"\u{e1ac}", + "brightness.low":"\u{e1ad}", + "brightness.medium":"\u{e1ae}", + "broken.image":"\u{e3ad}", + "brush":"\u{e3ae}", + "bubble.chart":"\u{e6dd}", + "bug.report":"\u{e868}", + "build":"\u{e869}", + "burst.mode":"\u{e43c}", + "business":"\u{e0af}", + "business.center":"\u{eb3f}", + "cached":"\u{e86a}", + "cake":"\u{e7e9}", + "call":"\u{e0b0}", + "call.end":"\u{e0b1}", + "call.made":"\u{e0b2}", + "call.merge":"\u{e0b3}", + "call.missed":"\u{e0b4}", + "call.missed.outgoing":"\u{e0e4}", + "call.received":"\u{e0b5}", + "call.split":"\u{e0b6}", + "call.to.action":"\u{e06c}", + "camera":"\u{e3af}", + "camera.alt":"\u{e3b0}", + "camera.enhance":"\u{e8fc}", + "camera.front":"\u{e3b1}", + "camera.rear":"\u{e3b2}", + "camera.roll":"\u{e3b3}", + "cancel":"\u{e5c9}", + "card.giftcard":"\u{e8f6}", + "card.membership":"\u{e8f7}", + "card.travel":"\u{e8f8}", + "casino":"\u{eb40}", + "cast":"\u{e307}", + "cast.connected":"\u{e308}", + "center.focus.strong":"\u{e3b4}", + "center.focus.weak":"\u{e3b5}", + "change.history":"\u{e86b}", + "chat":"\u{e0b7}", + "chat.bubble":"\u{e0ca}", + "chat.bubble.outline":"\u{e0cb}", + "check":"\u{e5ca}", + "check.box":"\u{e834}", + "check.box.outline.blank":"\u{e835}", + "check.circle":"\u{e86c}", + "chevron.left":"\u{e5cb}", + "chevron.right":"\u{e5cc}", + "child.care":"\u{eb41}", + "child.friendly":"\u{eb42}", + "chrome.reader.mode":"\u{e86d}", + "class":"\u{e86e}", + "clear":"\u{e14c}", + "clear.all":"\u{e0b8}", + "close":"\u{e5cd}", + "closed.caption":"\u{e01c}", + "cloud":"\u{e2bd}", + "cloud.circle":"\u{e2be}", + "cloud.done":"\u{e2bf}", + "cloud.download":"\u{e2c0}", + "cloud.off":"\u{e2c1}", + "cloud.queue":"\u{e2c2}", + "cloud.upload":"\u{e2c3}", + "code":"\u{e86f}", + "collections":"\u{e3b6}", + "collections.bookmark":"\u{e431}", + "color.lens":"\u{e3b7}", + "colorize":"\u{e3b8}", + "comment":"\u{e0b9}", + "compare":"\u{e3b9}", + "compare.arrows":"\u{e915}", + "computer":"\u{e30a}", + "confirmation.number":"\u{e638}", + "contact.mail":"\u{e0d0}", + "contact.phone":"\u{e0cf}", + "contacts":"\u{e0ba}", + "content.copy":"\u{e14d}", + "content.cut":"\u{e14e}", + "content.paste":"\u{e14f}", + "control.point":"\u{e3ba}", + "control.point.duplicate":"\u{e3bb}", + "copyright":"\u{e90c}", + "create":"\u{e150}", + "create.new.folder":"\u{e2cc}", + "credit.card":"\u{e870}", + "crop":"\u{e3be}", + "crop.16.9":"\u{e3bc}", + "crop.3.2":"\u{e3bd}", + "crop.5.4":"\u{e3bf}", + "crop.7.5":"\u{e3c0}", + "crop.din":"\u{e3c1}", + "crop.free":"\u{e3c2}", + "crop.landscape":"\u{e3c3}", + "crop.original":"\u{e3c4}", + "crop.portrait":"\u{e3c5}", + "crop.rotate":"\u{e437}", + "crop.square":"\u{e3c6}", + "dashboard":"\u{e871}", + "data.usage":"\u{e1af}", + "date.range":"\u{e916}", + "dehaze":"\u{e3c7}", + "delete":"\u{e872}", + "delete.forever":"\u{e92b}", + "delete.sweep":"\u{e16c}", + "description":"\u{e873}", + "desktop.mac":"\u{e30b}", + "desktop.windows":"\u{e30c}", + "details":"\u{e3c8}", + "developer.board":"\u{e30d}", + "developer.mode":"\u{e1b0}", + "device.hub":"\u{e335}", + "devices":"\u{e1b1}", + "devices.other":"\u{e337}", + "dialer.sip":"\u{e0bb}", + "dialpad":"\u{e0bc}", + "directions":"\u{e52e}", + "directions.bike":"\u{e52f}", + "directions.boat":"\u{e532}", + "directions.bus":"\u{e530}", + "directions.car":"\u{e531}", + "directions.railway":"\u{e534}", + "directions.run":"\u{e566}", + "directions.subway":"\u{e533}", + "directions.transit":"\u{e565}", + "directions.walk":"\u{e536}", + "disc.full":"\u{e610}", + "dns":"\u{e875}", + "do.not.disturb":"\u{e612}", + "do.not.disturb.alt":"\u{e611}", + "do.not.disturb.off":"\u{e643}", + "do.not.disturb.on":"\u{e644}", + "dock":"\u{e30e}", + "domain":"\u{e7ee}", + "done":"\u{e876}", + "done.all":"\u{e877}", + "donut.large":"\u{e917}", + "donut.small":"\u{e918}", + "drafts":"\u{e151}", + "drag.handle":"\u{e25d}", + "drive.eta":"\u{e613}", + "dvr":"\u{e1b2}", + "edit":"\u{e3c9}", + "edit.location":"\u{e568}", + "eject":"\u{e8fb}", + "email":"\u{e0be}", + "enhanced.encryption":"\u{e63f}", + "equalizer":"\u{e01d}", + "error":"\u{e000}", + "error.outline":"\u{e001}", + "euro.symbol":"\u{e926}", + "ev.station":"\u{e56d}", + "event":"\u{e878}", + "event.available":"\u{e614}", + "event.busy":"\u{e615}", + "event.note":"\u{e616}", + "event.seat":"\u{e903}", + "exit.to.app":"\u{e879}", + "expand.less":"\u{e5ce}", + "expand.more":"\u{e5cf}", + "explicit":"\u{e01e}", + "explore":"\u{e87a}", + "exposure":"\u{e3ca}", + "exposure.neg.1":"\u{e3cb}", + "exposure.neg.2":"\u{e3cc}", + "exposure.plus.1":"\u{e3cd}", + "exposure.plus.2":"\u{e3ce}", + "exposure.zero":"\u{e3cf}", + "extension":"\u{e87b}", + "face":"\u{e87c}", + "fast.forward":"\u{e01f}", + "fast.rewind":"\u{e020}", + "favorite":"\u{e87d}", + "favorite.border":"\u{e87e}", + "featured.play.list":"\u{e06d}", + "featured.video":"\u{e06e}", + "feedback":"\u{e87f}", + "fiber.dvr":"\u{e05d}", + "fiber.manual.record":"\u{e061}", + "fiber.new":"\u{e05e}", + "fiber.pin":"\u{e06a}", + "fiber.smart.record":"\u{e062}", + "file.download":"\u{e2c4}", + "file.upload":"\u{e2c6}", + "filter":"\u{e3d3}", + "filter.1":"\u{e3d0}", + "filter.2":"\u{e3d1}", + "filter.3":"\u{e3d2}", + "filter.4":"\u{e3d4}", + "filter.5":"\u{e3d5}", + "filter.6":"\u{e3d6}", + "filter.7":"\u{e3d7}", + "filter.8":"\u{e3d8}", + "filter.9":"\u{e3d9}", + "filter.9.plus":"\u{e3da}", + "filter.b.and.w":"\u{e3db}", + "filter.center.focus":"\u{e3dc}", + "filter.drama":"\u{e3dd}", + "filter.frames":"\u{e3de}", + "filter.hdr":"\u{e3df}", + "filter.list":"\u{e152}", + "filter.none":"\u{e3e0}", + "filter.tilt.shift":"\u{e3e2}", + "filter.vintage":"\u{e3e3}", + "find.in.page":"\u{e880}", + "find.replace":"\u{e881}", + "fingerprint":"\u{e90d}", + "first.page":"\u{e5dc}", + "fitness.center":"\u{eb43}", + "flag":"\u{e153}", + "flare":"\u{e3e4}", + "flash.auto":"\u{e3e5}", + "flash.off":"\u{e3e6}", + "flash.on":"\u{e3e7}", + "flight":"\u{e539}", + "flight.land":"\u{e904}", + "flight.takeoff":"\u{e905}", + "flip":"\u{e3e8}", + "flip.to.back":"\u{e882}", + "flip.to.front":"\u{e883}", + "folder":"\u{e2c7}", + "folder.open":"\u{e2c8}", + "folder.shared":"\u{e2c9}", + "folder.special":"\u{e617}", + "font.download":"\u{e167}", + "format.align.center":"\u{e234}", + "format.align.justify":"\u{e235}", + "format.align.left":"\u{e236}", + "format.align.right":"\u{e237}", + "format.bold":"\u{e238}", + "format.clear":"\u{e239}", + "format.color.fill":"\u{e23a}", + "format.color.reset":"\u{e23b}", + "format.color.text":"\u{e23c}", + "format.indent.decrease":"\u{e23d}", + "format.indent.increase":"\u{e23e}", + "format.italic":"\u{e23f}", + "format.line.spacing":"\u{e240}", + "format.list.bulleted":"\u{e241}", + "format.list.numbered":"\u{e242}", + "format.paint":"\u{e243}", + "format.quote":"\u{e244}", + "format.shapes":"\u{e25e}", + "format.size":"\u{e245}", + "format.strikethrough":"\u{e246}", + "format.textdirection.l.to.r":"\u{e247}", + "format.textdirection.r.to.l":"\u{e248}", + "format.underlined":"\u{e249}", + "forum":"\u{e0bf}", + "forward":"\u{e154}", + "forward.10":"\u{e056}", + "forward.30":"\u{e057}", + "forward.5":"\u{e058}", + "free.breakfast":"\u{eb44}", + "fullscreen":"\u{e5d0}", + "fullscreen.exit":"\u{e5d1}", + "functions":"\u{e24a}", + "g.translate":"\u{e927}", + "gamepad":"\u{e30f}", + "games":"\u{e021}", + "gavel":"\u{e90e}", + "gesture":"\u{e155}", + "get.app":"\u{e884}", + "gif":"\u{e908}", + "golf.course":"\u{eb45}", + "gps.fixed":"\u{e1b3}", + "gps.not.fixed":"\u{e1b4}", + "gps.off":"\u{e1b5}", + "grade":"\u{e885}", + "gradient":"\u{e3e9}", + "grain":"\u{e3ea}", + "graphic.eq":"\u{e1b8}", + "grid.off":"\u{e3eb}", + "grid.on":"\u{e3ec}", + "group":"\u{e7ef}", + "group.add":"\u{e7f0}", + "group.work":"\u{e886}", + "hd":"\u{e052}", + "hdr.off":"\u{e3ed}", + "hdr.on":"\u{e3ee}", + "hdr.strong":"\u{e3f1}", + "hdr.weak":"\u{e3f2}", + "headset":"\u{e310}", + "headset.mic":"\u{e311}", + "healing":"\u{e3f3}", + "hearing":"\u{e023}", + "help":"\u{e887}", + "help.outline":"\u{e8fd}", + "high.quality":"\u{e024}", + "highlight":"\u{e25f}", + "highlight.off":"\u{e888}", + "history":"\u{e889}", + "home":"\u{e88a}", + "hot.tub":"\u{eb46}", + "hotel":"\u{e53a}", + "hourglass.empty":"\u{e88b}", + "hourglass.full":"\u{e88c}", + "http":"\u{e902}", + "https":"\u{e88d}", + "image":"\u{e3f4}", + "image.aspect.ratio":"\u{e3f5}", + "import.contacts":"\u{e0e0}", + "import.export":"\u{e0c3}", + "important.devices":"\u{e912}", + "inbox":"\u{e156}", + "indeterminate.check.box":"\u{e909}", + "info":"\u{e88e}", + "info.outline":"\u{e88f}", + "input":"\u{e890}", + "insert.chart":"\u{e24b}", + "insert.comment":"\u{e24c}", + "insert.drive.file":"\u{e24d}", + "insert.emoticon":"\u{e24e}", + "insert.invitation":"\u{e24f}", + "insert.link":"\u{e250}", + "insert.photo":"\u{e251}", + "invert.colors":"\u{e891}", + "invert.colors.off":"\u{e0c4}", + "iso":"\u{e3f6}", + "keyboard":"\u{e312}", + "keyboard.arrow.down":"\u{e313}", + "keyboard.arrow.left":"\u{e314}", + "keyboard.arrow.right":"\u{e315}", + "keyboard.arrow.up":"\u{e316}", + "keyboard.backspace":"\u{e317}", + "keyboard.capslock":"\u{e318}", + "keyboard.hide":"\u{e31a}", + "keyboard.return":"\u{e31b}", + "keyboard.tab":"\u{e31c}", + "keyboard.voice":"\u{e31d}", + "kitchen":"\u{eb47}", + "label":"\u{e892}", + "label.outline":"\u{e893}", + "landscape":"\u{e3f7}", + "language":"\u{e894}", + "laptop":"\u{e31e}", + "laptop.chromebook":"\u{e31f}", + "laptop.mac":"\u{e320}", + "laptop.windows":"\u{e321}", + "last.page":"\u{e5dd}", + "launch":"\u{e895}", + "layers":"\u{e53b}", + "layers.clear":"\u{e53c}", + "leak.add":"\u{e3f8}", + "leak.remove":"\u{e3f9}", + "lens":"\u{e3fa}", + "library.add":"\u{e02e}", + "library.books":"\u{e02f}", + "library.music":"\u{e030}", + "lightbulb.outline":"\u{e90f}", + "line.style":"\u{e919}", + "line.weight":"\u{e91a}", + "linear.scale":"\u{e260}", + "link":"\u{e157}", + "linked.camera":"\u{e438}", + "list":"\u{e896}", + "live.help":"\u{e0c6}", + "live.tv":"\u{e639}", + "local.activity":"\u{e53f}", + "local.airport":"\u{e53d}", + "local.atm":"\u{e53e}", + "local.bar":"\u{e540}", + "local.cafe":"\u{e541}", + "local.car.wash":"\u{e542}", + "local.convenience.store":"\u{e543}", + "local.dining":"\u{e556}", + "local.drink":"\u{e544}", + "local.florist":"\u{e545}", + "local.gas.station":"\u{e546}", + "local.grocery.store":"\u{e547}", + "local.hospital":"\u{e548}", + "local.hotel":"\u{e549}", + "local.laundry.service":"\u{e54a}", + "local.library":"\u{e54b}", + "local.mall":"\u{e54c}", + "local.movies":"\u{e54d}", + "local.offer":"\u{e54e}", + "local.parking":"\u{e54f}", + "local.pharmacy":"\u{e550}", + "local.phone":"\u{e551}", + "local.pizza":"\u{e552}", + "local.play":"\u{e553}", + "local.post.office":"\u{e554}", + "local.printshop":"\u{e555}", + "local.see":"\u{e557}", + "local.shipping":"\u{e558}", + "local.taxi":"\u{e559}", + "location.city":"\u{e7f1}", + "location.disabled":"\u{e1b6}", + "location.off":"\u{e0c7}", + "location.on":"\u{e0c8}", + "location.searching":"\u{e1b7}", + "lock":"\u{e897}", + "lock.open":"\u{e898}", + "lock.outline":"\u{e899}", + "looks":"\u{e3fc}", + "looks.3":"\u{e3fb}", + "looks.4":"\u{e3fd}", + "looks.5":"\u{e3fe}", + "looks.6":"\u{e3ff}", + "looks.one":"\u{e400}", + "looks.two":"\u{e401}", + "loop":"\u{e028}", + "loupe":"\u{e402}", + "low.priority":"\u{e16d}", + "loyalty":"\u{e89a}", + "mail":"\u{e158}", + "mail.outline":"\u{e0e1}", + "map":"\u{e55b}", + "markunread":"\u{e159}", + "markunread.mailbox":"\u{e89b}", + "memory":"\u{e322}", + "menu":"\u{e5d2}", + "merge.type":"\u{e252}", + "message":"\u{e0c9}", + "mic":"\u{e029}", + "mic.none":"\u{e02a}", + "mic.off":"\u{e02b}", + "mms":"\u{e618}", + "mode.comment":"\u{e253}", + "mode.edit":"\u{e254}", + "monetization.on":"\u{e263}", + "money.off":"\u{e25c}", + "monochrome.photos":"\u{e403}", + "mood":"\u{e7f2}", + "mood.bad":"\u{e7f3}", + "more":"\u{e619}", + "more.horiz":"\u{e5d3}", + "more.vert":"\u{e5d4}", + "motorcycle":"\u{e91b}", + "mouse":"\u{e323}", + "move.to.inbox":"\u{e168}", + "movie":"\u{e02c}", + "movie.creation":"\u{e404}", + "movie.filter":"\u{e43a}", + "multiline.chart":"\u{e6df}", + "music.note":"\u{e405}", + "music.video":"\u{e063}", + "my.location":"\u{e55c}", + "nature":"\u{e406}", + "nature.people":"\u{e407}", + "navigate.before":"\u{e408}", + "navigate.next":"\u{e409}", + "navigation":"\u{e55d}", + "near.me":"\u{e569}", + "network.cell":"\u{e1b9}", + "network.check":"\u{e640}", + "network.locked":"\u{e61a}", + "network.wifi":"\u{e1ba}", + "new.releases":"\u{e031}", + "next.week":"\u{e16a}", + "nfc":"\u{e1bb}", + "no.encryption":"\u{e641}", + "no.sim":"\u{e0cc}", + "not.interested":"\u{e033}", + "note":"\u{e06f}", + "note.add":"\u{e89c}", + "notifications":"\u{e7f4}", + "notifications.active":"\u{e7f7}", + "notifications.none":"\u{e7f5}", + "notifications.off":"\u{e7f6}", + "notifications.paused":"\u{e7f8}", + "offline.pin":"\u{e90a}", + "ondemand.video":"\u{e63a}", + "opacity":"\u{e91c}", + "open.in.browser":"\u{e89d}", + "open.in.new":"\u{e89e}", + "open.with":"\u{e89f}", + "pages":"\u{e7f9}", + "pageview":"\u{e8a0}", + "palette":"\u{e40a}", + "pan.tool":"\u{e925}", + "panorama":"\u{e40b}", + "panorama.fish.eye":"\u{e40c}", + "panorama.horizontal":"\u{e40d}", + "panorama.vertical":"\u{e40e}", + "panorama.wide.angle":"\u{e40f}", + "party.mode":"\u{e7fa}", + "pause":"\u{e034}", + "pause.circle.filled":"\u{e035}", + "pause.circle.outline":"\u{e036}", + "payment":"\u{e8a1}", + "people":"\u{e7fb}", + "people.outline":"\u{e7fc}", + "perm.camera.mic":"\u{e8a2}", + "perm.contact.calendar":"\u{e8a3}", + "perm.data.setting":"\u{e8a4}", + "perm.device.information":"\u{e8a5}", + "perm.identity":"\u{e8a6}", + "perm.media":"\u{e8a7}", + "perm.phone.msg":"\u{e8a8}", + "perm.scan.wifi":"\u{e8a9}", + "person":"\u{e7fd}", + "person.add":"\u{e7fe}", + "person.outline":"\u{e7ff}", + "person.pin":"\u{e55a}", + "person.pin.circle":"\u{e56a}", + "personal.video":"\u{e63b}", + "pets":"\u{e91d}", + "phone":"\u{e0cd}", + "phone.android":"\u{e324}", + "phone.bluetooth.speaker":"\u{e61b}", + "phone.forwarded":"\u{e61c}", + "phone.in.talk":"\u{e61d}", + "phone.iphone":"\u{e325}", + "phone.locked":"\u{e61e}", + "phone.missed":"\u{e61f}", + "phone.paused":"\u{e620}", + "phonelink":"\u{e326}", + "phonelink.erase":"\u{e0db}", + "phonelink.lock":"\u{e0dc}", + "phonelink.off":"\u{e327}", + "phonelink.ring":"\u{e0dd}", + "phonelink.setup":"\u{e0de}", + "photo":"\u{e410}", + "photo.album":"\u{e411}", + "photo.camera":"\u{e412}", + "photo.filter":"\u{e43b}", + "photo.library":"\u{e413}", + "photo.size.select.actual":"\u{e432}", + "photo.size.select.large":"\u{e433}", + "photo.size.select.small":"\u{e434}", + "picture.as.pdf":"\u{e415}", + "picture.in.picture":"\u{e8aa}", + "picture.in.picture.alt":"\u{e911}", + "pie.chart":"\u{e6c4}", + "pie.chart.outlined":"\u{e6c5}", + "pin.drop":"\u{e55e}", + "place":"\u{e55f}", + "play.arrow":"\u{e037}", + "play.circle.filled":"\u{e038}", + "play.circle.outline":"\u{e039}", + "play.for.work":"\u{e906}", + "playlist.add":"\u{e03b}", + "playlist.add.check":"\u{e065}", + "playlist.play":"\u{e05f}", + "plus.one":"\u{e800}", + "poll":"\u{e801}", + "polymer":"\u{e8ab}", + "pool":"\u{eb48}", + "portable.wifi.off":"\u{e0ce}", + "portrait":"\u{e416}", + "power":"\u{e63c}", + "power.input":"\u{e336}", + "power.settings.new":"\u{e8ac}", + "pregnant.woman":"\u{e91e}", + "present.to.all":"\u{e0df}", + "print":"\u{e8ad}", + "priority.high":"\u{e645}", + "public":"\u{e80b}", + "publish":"\u{e255}", + "query.builder":"\u{e8ae}", + "question.answer":"\u{e8af}", + "queue":"\u{e03c}", + "queue.music":"\u{e03d}", + "queue.play.next":"\u{e066}", + "radio":"\u{e03e}", + "radio.button.checked":"\u{e837}", + "radio.button.unchecked":"\u{e836}", + "rate.review":"\u{e560}", + "receipt":"\u{e8b0}", + "recent.actors":"\u{e03f}", + "record.voice.over":"\u{e91f}", + "redeem":"\u{e8b1}", + "redo":"\u{e15a}", + "refresh":"\u{e5d5}", + "remove":"\u{e15b}", + "remove.circle":"\u{e15c}", + "remove.circle.outline":"\u{e15d}", + "remove.from.queue":"\u{e067}", + "remove.red.eye":"\u{e417}", + "remove.shopping.cart":"\u{e928}", + "reorder":"\u{e8fe}", + "repeat":"\u{e040}", + "repeat.one":"\u{e041}", + "replay":"\u{e042}", + "replay.10":"\u{e059}", + "replay.30":"\u{e05a}", + "replay.5":"\u{e05b}", + "reply":"\u{e15e}", + "reply.all":"\u{e15f}", + "report":"\u{e160}", + "report.problem":"\u{e8b2}", + "restaurant":"\u{e56c}", + "restaurant.menu":"\u{e561}", + "restore":"\u{e8b3}", + "restore.page":"\u{e929}", + "ring.volume":"\u{e0d1}", + "room":"\u{e8b4}", + "room.service":"\u{eb49}", + "rotate.90.degrees.ccw":"\u{e418}", + "rotate.left":"\u{e419}", + "rotate.right":"\u{e41a}", + "rounded.corner":"\u{e920}", + "router":"\u{e328}", + "rowing":"\u{e921}", + "rss.feed":"\u{e0e5}", + "rv.hookup":"\u{e642}", + "satellite":"\u{e562}", + "save":"\u{e161}", + "scanner":"\u{e329}", + "schedule":"\u{e8b5}", + "school":"\u{e80c}", + "screen.lock.landscape":"\u{e1be}", + "screen.lock.portrait":"\u{e1bf}", + "screen.lock.rotation":"\u{e1c0}", + "screen.rotation":"\u{e1c1}", + "screen.share":"\u{e0e2}", + "sd.card":"\u{e623}", + "sd.storage":"\u{e1c2}", + "search":"\u{e8b6}", + "security":"\u{e32a}", + "select.all":"\u{e162}", + "send":"\u{e163}", + "sentiment.dissatisfied":"\u{e811}", + "sentiment.neutral":"\u{e812}", + "sentiment.satisfied":"\u{e813}", + "sentiment.very.dissatisfied":"\u{e814}", + "sentiment.very.satisfied":"\u{e815}", + "settings":"\u{e8b8}", + "settings.applications":"\u{e8b9}", + "settings.backup.restore":"\u{e8ba}", + "settings.bluetooth":"\u{e8bb}", + "settings.brightness":"\u{e8bd}", + "settings.cell":"\u{e8bc}", + "settings.ethernet":"\u{e8be}", + "settings.input.antenna":"\u{e8bf}", + "settings.input.component":"\u{e8c0}", + "settings.input.composite":"\u{e8c1}", + "settings.input.hdmi":"\u{e8c2}", + "settings.input.svideo":"\u{e8c3}", + "settings.overscan":"\u{e8c4}", + "settings.phone":"\u{e8c5}", + "settings.power":"\u{e8c6}", + "settings.remote":"\u{e8c7}", + "settings.system.daydream":"\u{e1c3}", + "settings.voice":"\u{e8c8}", + "share":"\u{e80d}", + "shop":"\u{e8c9}", + "shop.two":"\u{e8ca}", + "shopping.basket":"\u{e8cb}", + "shopping.cart":"\u{e8cc}", + "short.text":"\u{e261}", + "show.chart":"\u{e6e1}", + "shuffle":"\u{e043}", + "signal.cellular.4.bar":"\u{e1c8}", + "signal.cellular.connected.no.internet.4.bar":"\u{e1cd}", + "signal.cellular.no.sim":"\u{e1ce}", + "signal.cellular.null":"\u{e1cf}", + "signal.cellular.off":"\u{e1d0}", + "signal.wifi.4.bar":"\u{e1d8}", + "signal.wifi.4.bar.lock":"\u{e1d9}", + "signal.wifi.off":"\u{e1da}", + "sim.card":"\u{e32b}", + "sim.card.alert":"\u{e624}", + "skip.next":"\u{e044}", + "skip.previous":"\u{e045}", + "slideshow":"\u{e41b}", + "slow.motion.video":"\u{e068}", + "smartphone":"\u{e32c}", + "smoke.free":"\u{eb4a}", + "smoking.rooms":"\u{eb4b}", + "sms":"\u{e625}", + "sms.failed":"\u{e626}", + "snooze":"\u{e046}", + "sort":"\u{e164}", + "sort.by.alpha":"\u{e053}", + "spa":"\u{eb4c}", + "space.bar":"\u{e256}", + "speaker":"\u{e32d}", + "speaker.group":"\u{e32e}", + "speaker.notes":"\u{e8cd}", + "speaker.notes.off":"\u{e92a}", + "speaker.phone":"\u{e0d2}", + "spellcheck":"\u{e8ce}", + "star":"\u{e838}", + "star.border":"\u{e83a}", + "star.half":"\u{e839}", + "stars":"\u{e8d0}", + "stay.current.landscape":"\u{e0d3}", + "stay.current.portrait":"\u{e0d4}", + "stay.primary.landscape":"\u{e0d5}", + "stay.primary.portrait":"\u{e0d6}", + "stop":"\u{e047}", + "stop.screen.share":"\u{e0e3}", + "storage":"\u{e1db}", + "store":"\u{e8d1}", + "store.mall.directory":"\u{e563}", + "straighten":"\u{e41c}", + "streetview":"\u{e56e}", + "strikethrough.s":"\u{e257}", + "style":"\u{e41d}", + "subdirectory.arrow.left":"\u{e5d9}", + "subdirectory.arrow.right":"\u{e5da}", + "subject":"\u{e8d2}", + "subscriptions":"\u{e064}", + "subtitles":"\u{e048}", + "subway":"\u{e56f}", + "supervisor.account":"\u{e8d3}", + "surround.sound":"\u{e049}", + "swap.calls":"\u{e0d7}", + "swap.horiz":"\u{e8d4}", + "swap.vert":"\u{e8d5}", + "swap.vertical.circle":"\u{e8d6}", + "switch.camera":"\u{e41e}", + "switch.video":"\u{e41f}", + "sync":"\u{e627}", + "sync.disabled":"\u{e628}", + "sync.problem":"\u{e629}", + "system.update":"\u{e62a}", + "system.update.alt":"\u{e8d7}", + "tab":"\u{e8d8}", + "tab.unselected":"\u{e8d9}", + "tablet":"\u{e32f}", + "tablet.android":"\u{e330}", + "tablet.mac":"\u{e331}", + "tag.faces":"\u{e420}", + "tap.and.play":"\u{e62b}", + "terrain":"\u{e564}", + "text.fields":"\u{e262}", + "text.format":"\u{e165}", + "textsms":"\u{e0d8}", + "texture":"\u{e421}", + "theaters":"\u{e8da}", + "thumb.down":"\u{e8db}", + "thumb.up":"\u{e8dc}", + "thumbs.up.down":"\u{e8dd}", + "time.to.leave":"\u{e62c}", + "timelapse":"\u{e422}", + "timeline":"\u{e922}", + "timer":"\u{e425}", + "timer.10":"\u{e423}", + "timer.3":"\u{e424}", + "timer.off":"\u{e426}", + "title":"\u{e264}", + "toc":"\u{e8de}", + "today":"\u{e8df}", + "toll":"\u{e8e0}", + "tonality":"\u{e427}", + "touch.app":"\u{e913}", + "toys":"\u{e332}", + "track.changes":"\u{e8e1}", + "traffic":"\u{e565}", + "train":"\u{e570}", + "tram":"\u{e571}", + "transfer.within.a.station":"\u{e572}", + "transform":"\u{e428}", + "translate":"\u{e8e2}", + "trending.down":"\u{e8e3}", + "trending.flat":"\u{e8e4}", + "trending.up":"\u{e8e5}", + "tune":"\u{e429}", + "turned.in":"\u{e8e6}", + "turned.in.not":"\u{e8e7}", + "tv":"\u{e333}", + "unarchive":"\u{e169}", + "undo":"\u{e166}", + "unfold.less":"\u{e5d6}", + "unfold.more":"\u{e5d7}", + "update":"\u{e923}", + "usb":"\u{e1e0}", + "verified.user":"\u{e8e8}", + "vertical.align.bottom":"\u{e258}", + "vertical.align.center":"\u{e259}", + "vertical.align.top":"\u{e25a}", + "vibration":"\u{e62d}", + "video.call":"\u{e070}", + "video.label":"\u{e071}", + "video.library":"\u{e04a}", + "videocam":"\u{e04b}", + "videocam.off":"\u{e04c}", + "videogame.asset":"\u{e338}", + "view.agenda":"\u{e8e9}", + "view.array":"\u{e8ea}", + "view.carousel":"\u{e8eb}", + "view.column":"\u{e8ec}", + "view.comfy":"\u{e42a}", + "view.compact":"\u{e42b}", + "view.day":"\u{e8ed}", + "view.headline":"\u{e8ee}", + "view.list":"\u{e8ef}", + "view.module":"\u{e8f0}", + "view.quilt":"\u{e8f1}", + "view.stream":"\u{e8f2}", + "view.week":"\u{e8f3}", + "vignette":"\u{e435}", + "visibility":"\u{e8f4}", + "visibility.off":"\u{e8f5}", + "voice.chat":"\u{e62e}", + "voicemail":"\u{e0d9}", + "volume.down":"\u{e04d}", + "volume.mute":"\u{e04e}", + "volume.off":"\u{e04f}", + "volume.up":"\u{e050}", + "vpn.key":"\u{e0da}", + "vpn.lock":"\u{e62f}", + "wallpaper":"\u{e1bc}", + "warning":"\u{e002}", + "watch":"\u{e334}", + "watch.later":"\u{e924}", + "wb.auto":"\u{e42c}", + "wb.cloudy":"\u{e42d}", + "wb.incandescent":"\u{e42e}", + "wb.iridescent":"\u{e436}", + "wb.sunny":"\u{e430}", + "wc":"\u{e63d}", + "web":"\u{e051}", + "web.asset":"\u{e069}", + "weekend":"\u{e16b}", + "whatshot":"\u{e80e}", + "widgets":"\u{e1bd}", + "wifi":"\u{e63e}", + "wifi.lock":"\u{e1e1}", + "wifi.tethering":"\u{e1e2}", + "work":"\u{e8f9}", + "wrap.text":"\u{e25b}", + "youtube.searched.for":"\u{e8fa}", + "zoom.in":"\u{e8ff}", + "zoom.out":"\u{e900}", + "zoom.out.map":"\u{e56b}" +] diff --git a/SmoothButton/SmoothButton/SwiftIconFont/Octicon.swift b/SmoothButton/SmoothButton/SwiftIconFont/Octicon.swift new file mode 100755 index 0000000..428c5ab --- /dev/null +++ b/SmoothButton/SmoothButton/SwiftIconFont/Octicon.swift @@ -0,0 +1,191 @@ +// +// NSString+Octicon.swift +// SwiftIconFont +// +// Created by Sedat Ciftci on 18/03/16. +// Copyright © 2016 Sedat Gokbek Ciftci. All rights reserved. +// + +import UIKit + +public let octiconArr: [String: String] = [ + "alert":"\u{f02d}", + "alignment-align":"\u{f08a}", + "alignment-aligned-to":"\u{f08e}", + "alignment-unalign":"\u{f08b}", + "arrow-down":"\u{f03f}", + "arrow-left":"\u{f040}", + "arrow-right":"\u{f03e}", + "arrow-small-down":"\u{f0a0}", + "arrow-small-left":"\u{f0a1}", + "arrow-small-right":"\u{f071}", + "arrow-small-up":"\u{f09f}", + "arrow-up":"\u{f03d}", + "beer":"\u{f069}", + "book":"\u{f007}", + "bookmark":"\u{f07b}", + "briefcase":"\u{f0d3}", + "broadcast":"\u{f048}", + "browser":"\u{f0c5}", + "bug":"\u{f091}", + "calendar":"\u{f068}", + "check":"\u{f03a}", + "checklist":"\u{f076}", + "chevron-down":"\u{f0a3}", + "chevron-left":"\u{f0a4}", + "chevron-right":"\u{f078}", + "chevron-up":"\u{f0a2}", + "circle-slash":"\u{f084}", + "circuit-board":"\u{f0d6}", + "clippy":"\u{f035}", + "clock":"\u{f046}", + "cloud-download":"\u{f00b}", + "cloud-upload":"\u{f00c}", + "code":"\u{f05f}", + "color-mode":"\u{f065}", + "comment":"\u{f02b}", + "comment-discussion":"\u{f04f}", + "credit-card":"\u{f045}", + "dash":"\u{f0ca}", + "dashboard":"\u{f07d}", + "database":"\u{f096}", + "device-camera":"\u{f056}", + "device-camera-video":"\u{f057}", + "device-desktop":"\u{f27c}", + "device-mobile":"\u{f038}", + "diff":"\u{f04d}", + "diff-added":"\u{f06b}", + "diff-ignored":"\u{f099}", + "diff-modified":"\u{f06d}", + "diff-removed":"\u{f06c}", + "diff-renamed":"\u{f06e}", + "ellipsis":"\u{f09a}", + "eye":"\u{f04e}", + "file-binary":"\u{f094}", + "file-code":"\u{f010}", + "file-directory":"\u{f016}", + "file-media":"\u{f012}", + "file-pdf":"\u{f014}", + "file-submodule":"\u{f017}", + "file-symlink-directory":"\u{f0b1}", + "file-symlink-file":"\u{f0b0}", + "file-text":"\u{f011}", + "file-zip":"\u{f013}", + "flame":"\u{f0d2}", + "fold":"\u{f0cc}", + "gear":"\u{f02f}", + "gift":"\u{f042}", + "gist":"\u{f00e}", + "gist-secret":"\u{f08c}", + "git-branch":"\u{f020}", + "git-commit":"\u{f01f}", + "git-compare":"\u{f0ac}", + "git-merge":"\u{f023}", + "git-pull-request":"\u{f009}", + "globe":"\u{f0b6}", + "graph":"\u{f043}", + "heart":"\u{2665}", + "history":"\u{f07e}", + "home":"\u{f08d}", + "horizontal-rule":"\u{f070}", + "hourglass":"\u{f09e}", + "hubot":"\u{f09d}", + "inbox":"\u{f0cf}", + "info":"\u{f059}", + "issue-closed":"\u{f028}", + "issue-opened":"\u{f026}", + "issue-reopened":"\u{f027}", + "jersey":"\u{f019}", + "jump-down":"\u{f072}", + "jump-left":"\u{f0a5}", + "jump-right":"\u{f0a6}", + "jump-up":"\u{f073}", + "key":"\u{f049}", + "keyboard":"\u{f00d}", + "law":"\u{f0d8}", + "light-bulb":"\u{f000}", + "link":"\u{f05c}", + "link-external":"\u{f07f}", + "list-ordered":"\u{f062}", + "list-unordered":"\u{f061}", + "location":"\u{f060}", + "lock":"\u{f06a}", + "logo-github":"\u{f092}", + "mail":"\u{f03b}", + "mail-read":"\u{f03c}", + "mail-reply":"\u{f051}", + "mark-github":"\u{f00a}", + "markdown":"\u{f0c9}", + "megaphone":"\u{f077}", + "mention":"\u{f0be}", + "microscope":"\u{f089}", + "milestone":"\u{f075}", + "mirror":"\u{f024}", + "mortar-board":"\u{f0d7}", + "move-down":"\u{f0a8}", + "move-left":"\u{f074}", + "move-right":"\u{f0a9}", + "move-up":"\u{f0a7}", + "mute":"\u{f080}", + "no-newline":"\u{f09c}", + "octoface":"\u{f008}", + "organization":"\u{f037}", + "package":"\u{f0c4}", + "paintcan":"\u{f0d1}", + "pencil":"\u{f058}", + "person":"\u{f018}", + "pin":"\u{f041}", + "playback-fast-forward":"\u{f0bd}", + "playback-pause":"\u{f0bb}", + "playback-play":"\u{f0bf}", + "playback-rewind":"\u{f0bc}", + "plug":"\u{f0d4}", + "plus":"\u{f05d}", + "podium":"\u{f0af}", + "primitive-dot":"\u{f052}", + "primitive-square":"\u{f053}", + "pulse":"\u{f085}", + "puzzle":"\u{f0c0}", + "question":"\u{f02c}", + "quote":"\u{f063}", + "radio-tower":"\u{f030}", + "repo":"\u{f001}", + "repo-clone":"\u{f04c}", + "repo-force-push":"\u{f04a}", + "repo-forked":"\u{f002}", + "repo-pull":"\u{f006}", + "repo-push":"\u{f005}", + "rocket":"\u{f033}", + "rss":"\u{f034}", + "ruby":"\u{f047}", + "screen-full":"\u{f066}", + "screen-normal":"\u{f067}", + "search":"\u{f02e}", + "server":"\u{f097}", + "settings":"\u{f07c}", + "sign-in":"\u{f036}", + "sign-out":"\u{f032}", + "split":"\u{f0c6}", + "squirrel":"\u{f0b2}", + "star":"\u{f02a}", + "steps":"\u{f0c7}", + "stop":"\u{f08f}", + "sync":"\u{f087}", + "tag":"\u{f015}", + "telescope":"\u{f088}", + "terminal":"\u{f0c8}", + "three-bars":"\u{f05e}", + "thumbsdown":"\u{f0db}", + "thumbsup":"\u{f0da}", + "tools":"\u{f031}", + "trashcan":"\u{f0d0}", + "triangle-down":"\u{f05b}", + "triangle-left":"\u{f044}", + "triangle-right":"\u{f05a}", + "triangle-up":"\u{f0aa}", + "unfold":"\u{f039}", + "unmute":"\u{f0ba}", + "versions":"\u{f064}", + "x":"\u{f081}", + "zap":"\u{26A1}", +] diff --git a/SmoothButton/SmoothButton/SwiftIconFont/SwiftIconFont.swift b/SmoothButton/SmoothButton/SwiftIconFont/SwiftIconFont.swift new file mode 100755 index 0000000..fb2c076 --- /dev/null +++ b/SmoothButton/SmoothButton/SwiftIconFont/SwiftIconFont.swift @@ -0,0 +1,285 @@ +// +// UIFont+SwiftIconFont.swift +// SwiftIconFont +// +// Created by Sedat Ciftci on 18/03/16. +// Copyright © 2016 Sedat Gokbek Ciftci. All rights reserved. +// + +import UIKit + +public enum Fonts: String { + case FontAwesome = "FontAwesome" + case Iconic = "open-iconic" + case Ionicon = "Ionicons" + case Octicon = "octicons" + case Themify = "themify" + case MapIcon = "map-icons" + case MaterialIcon = "MaterialIcons-Regular" + + var fontName: String { + switch self { + case .FontAwesome: + return "FontAwesome" + case .Iconic: + return "Icons" + case .Ionicon: + return "Ionicons" + case .Octicon: + return "octicons" + case .Themify: + return "Themify" + case .MapIcon: + return "map-icons" + case .MaterialIcon: + return "Material Icons" + } + } + +} +public extension UIFont{ + + static func icon(from font: Fonts, ofSize size: CGFloat) -> UIFont { + let fontName = font.rawValue + if (UIFont.fontNames(forFamilyName: font.fontName).count == 0) + { + /* + dispatch_once(&token) { + FontLoader.loadFont(fontName) + } + */ + FontLoader.loadFont(fontName) + } + return UIFont(name: font.rawValue, size: size)! + } + +} + +public extension UIImage +{ + public static func icon(from font: Fonts, iconColor: UIColor, code: String, imageSize: CGSize, ofSize size: CGFloat) -> UIImage + { + let drawText = String.getIcon(from: font, code: code) + + UIGraphicsBeginImageContextWithOptions(imageSize, false, 0) + let paragraphStyle = NSMutableParagraphStyle() + paragraphStyle.alignment = NSTextAlignment.center + + drawText!.draw(in: CGRect(x:0, y:0, width:imageSize.width, height:imageSize.height), withAttributes: [NSAttributedStringKey.font : UIFont.icon(from: font, ofSize: size), NSAttributedStringKey.paragraphStyle: paragraphStyle, NSAttributedStringKey.foregroundColor: iconColor]) + + let image = UIGraphicsGetImageFromCurrentImageContext() + UIGraphicsEndImageContext() + + return image! + } +} + +public extension String { + + public static func getIcon(from font: Fonts, code: String) -> String? { + switch font { + case .FontAwesome: + return fontAwesomeIcon(code) + case .Iconic: + return fontIconicIcon(code) + case .Ionicon: + return fontIonIcon(code) + case .MapIcon: + return fontMapIcon(code) + case .MaterialIcon: + return fontMaterialIcon(code) + case .Octicon: + return fontOcticon(code) + case .Themify: + return fontThemifyIcon(code) + } + } + + public static func fontAwesomeIcon(_ code: String) -> String? { + if let icon = fontAwesomeIconArr[code] { + return icon + } + return nil + } + + public static func fontOcticon(_ code: String) -> String? { + if let icon = octiconArr[code] { + return icon + } + return nil + } + + public static func fontIonIcon(_ code: String) -> String? { + if let icon = ioniconArr[code] { + return icon + } + return nil + } + + public static func fontIconicIcon(_ code: String) -> String? { + if let icon = iconicIconArr[code] { + return icon + } + return nil + } + + + public static func fontThemifyIcon(_ code: String) -> String? { + if let icon = temifyIconArr[code] { + return icon + } + return nil + } + + public static func fontMapIcon(_ code: String) -> String? { + if let icon = mapIconArr[code] { + return icon + } + return nil + } + + public static func fontMaterialIcon(_ code: String) -> String? { + if let icon = materialIconArr[code] { + return icon + } + return nil + } +} + +func replace(withText string: NSString) -> NSString { + if string.lowercased.range(of: "-") != nil { + return string.replacingOccurrences(of: "-", with: "_") as NSString + } + return string +} + + + +func getAttributedString(_ text: NSString, ofSize size: CGFloat) -> NSMutableAttributedString { + let attributedString = NSMutableAttributedString(string: text as String) + + for substring in ((text as String).split{$0 == " "}.map(String.init)) { + var splitArr = ["", ""] + splitArr = substring.split{$0 == ":"}.map(String.init) + if splitArr.count < 2 { + continue + } + + + let substringRange = text.range(of: substring) + + let fontPrefix: String = splitArr[0].lowercased() + var fontCode: String = splitArr[1] + + if fontCode.lowercased().range(of: "_") != nil { + fontCode = (fontCode as NSString).replacingOccurrences(of: "_", with: "-") + } + + var fontType: Fonts = Fonts.FontAwesome + var fontArr: [String: String] = ["": ""] + + if fontPrefix == "fa" { + fontType = Fonts.FontAwesome + fontArr = fontAwesomeIconArr + } else if fontPrefix == "ic" { + fontType = Fonts.Iconic + fontArr = iconicIconArr + } else if fontPrefix == "io" { + fontType = Fonts.Ionicon + fontArr = ioniconArr + } else if fontPrefix == "oc" { + fontType = Fonts.Octicon + fontArr = octiconArr + } else if fontPrefix == "ti" { + fontType = Fonts.Themify + fontArr = temifyIconArr + } else if fontPrefix == "mi" { + fontType = Fonts.MapIcon + fontArr = mapIconArr + } else if fontPrefix == "ma" { + fontType = Fonts.MaterialIcon + fontArr = materialIconArr + } + + if let _ = fontArr[fontCode] { + attributedString.replaceCharacters(in: substringRange, with: String.getIcon(from: fontType, code: fontCode)!) + let newRange = NSRange(location: substringRange.location, length: 1) + attributedString.addAttribute(NSAttributedStringKey.font, value: UIFont.icon(from: fontType, ofSize: size), range: newRange) + } + } + + return attributedString +} + +func GetIconIndexWithSelectedIcon(_ icon: String) -> String { + let text = icon as NSString + var iconIndex: String = "" + + for substring in ((text as String).split{$0 == " "}.map(String.init)) { + var splitArr = ["", ""] + splitArr = substring.split{$0 == ":"}.map(String.init) + if splitArr.count == 1{ + continue + } + + var fontCode: String = splitArr[1] + + if fontCode.lowercased().range(of: "_") != nil { + fontCode = (fontCode as NSString).replacingOccurrences(of: "_", with: "-") + } + iconIndex = fontCode + } + + return iconIndex +} + +func GetFontTypeWithSelectedIcon(_ icon: String) -> Fonts { + let text = icon as NSString + var fontType: Fonts = Fonts.FontAwesome + + for substring in ((text as String).split{$0 == " "}.map(String.init)) { + var splitArr = ["", ""] + splitArr = substring.split{$0 == ":"}.map(String.init) + + if splitArr.count == 1{ + continue + } + + let fontPrefix: String = splitArr[0].lowercased() + var fontCode: String = splitArr[1] + + if fontCode.lowercased().range(of: "_") != nil { + fontCode = (fontCode as NSString).replacingOccurrences(of: "_", with: "-") + } + + + if fontPrefix == "fa" { + fontType = Fonts.FontAwesome + } else if fontPrefix == "ic" { + fontType = Fonts.Iconic + } else if fontPrefix == "io" { + fontType = Fonts.Ionicon + } else if fontPrefix == "oc" { + fontType = Fonts.Octicon + } else if fontPrefix == "ti" { + fontType = Fonts.Themify + } else if fontPrefix == "mi" { + fontType = Fonts.MapIcon + } else if fontPrefix == "ma" { + fontType = Fonts.MaterialIcon + } + } + + + return fontType +} + +// Extensions + + +public extension UILabel { + func parseIcon() { + let text = replace(withText: (self.text! as NSString)) + self.attributedText = getAttributedString(text, ofSize: self.font!.pointSize) + } +} diff --git a/SmoothButton/SmoothButton/SwiftIconFont/SwiftIconLabel.swift b/SmoothButton/SmoothButton/SwiftIconFont/SwiftIconLabel.swift new file mode 100755 index 0000000..7d1c64d --- /dev/null +++ b/SmoothButton/SmoothButton/SwiftIconFont/SwiftIconLabel.swift @@ -0,0 +1,23 @@ +// +// SwiftIconLabel.swift +// icon +// +// Created by Sedat Gökbek ÇİFTÇİ on 08/07/16. +// Copyright © 2016 Sedat Gökbek ÇİFTÇİ. All rights reserved. +// + +import UIKit + +@IBDesignable +class SwiftIconLabel: UILabel { + @IBInspectable var Icon: String = "" { + didSet { + self.text = Icon + self.parseIcon() + } + } + + override func awakeFromNib() { + self.parseIcon() + } +} diff --git a/SmoothButton/SmoothButton/SwiftIconFont/ThemifyIcon.swift b/SmoothButton/SmoothButton/SwiftIconFont/ThemifyIcon.swift new file mode 100755 index 0000000..2a688e8 --- /dev/null +++ b/SmoothButton/SmoothButton/SwiftIconFont/ThemifyIcon.swift @@ -0,0 +1,364 @@ +// +// Themify.swift +// Exa +// +// Created by Sedat Gökbek ÇİFTÇİ on 08/07/16. +// Copyright © 2016 Sedat Gökbek ÇİFTÇİ. All rights reserved. +// + +import UIKit + +public let temifyIconArr: [String: String] = [ + "wand":"\u{e600}", + "volume":"\u{e601}", + "user":"\u{e602}", + "unlock":"\u{e603}", + "unlink":"\u{e604}", + "trash":"\u{e605}", + "thought":"\u{e606}", + "target":"\u{e607}", + "tag":"\u{e608}", + "tablet":"\u{e609}", + "star":"\u{e60a}", + "spray":"\u{e60b}", + "signal":"\u{e60c}", + "shopping.cart":"\u{e60d}", + "shopping.cart.full":"\u{e60e}", + "settings":"\u{e60f}", + "search":"\u{e610}", + "zoom.in":"\u{e611}", + "zoom.out":"\u{e612}", + "cut":"\u{e613}", + "ruler":"\u{e614}", + "ruler.pencil":"\u{e615}", + "ruler.alt":"\u{e616}", + "bookmark":"\u{e617}", + "bookmark.alt":"\u{e618}", + "reload":"\u{e619}", + "plus":"\u{e61a}", + "pin":"\u{e61b}", + "pencil":"\u{e61c}", + "pencil.alt":"\u{e61d}", + "paint.roller":"\u{e61e}", + "paint.bucket":"\u{e61f}", + "na":"\u{e620}", + "mobile":"\u{e621}", + "minus":"\u{e622}", + "medall":"\u{e623}", + "medall.alt":"\u{e624}", + "marker":"\u{e625}", + "marker.alt":"\u{e626}", + "arrow.up":"\u{e627}", + "arrow.right":"\u{e628}", + "arrow.left":"\u{e629}", + "arrow.down":"\u{e62a}", + "lock":"\u{e62b}", + "location.arrow":"\u{e62c}", + "link":"\u{e62d}", + "layout":"\u{e62e}", + "layers":"\u{e62f}", + "layers.alt":"\u{e630}", + "key":"\u{e631}", + "import":"\u{e632}", + "image":"\u{e633}", + "heart":"\u{e634}", + "heart.broken":"\u{e635}", + "hand.stop":"\u{e636}", + "hand.open":"\u{e637}", + "hand.drag":"\u{e638}", + "folder":"\u{e639}", + "flag":"\u{e63a}", + "flag.alt":"\u{e63b}", + "flag.alt.2":"\u{e63c}", + "eye":"\u{e63d}", + "export":"\u{e63e}", + "exchange.vertical":"\u{e63f}", + "desktop":"\u{e640}", + "cup":"\u{e641}", + "crown":"\u{e642}", + "comments":"\u{e643}", + "comment":"\u{e644}", + "comment.alt":"\u{e645}", + "close":"\u{e646}", + "clip":"\u{e647}", + "angle.up":"\u{e648}", + "angle.right":"\u{e649}", + "angle.left":"\u{e64a}", + "angle.down":"\u{e64b}", + "check":"\u{e64c}", + "check.box":"\u{e64d}", + "camera":"\u{e64e}", + "announcement":"\u{e64f}", + "brush":"\u{e650}", + "briefcase":"\u{e651}", + "bolt":"\u{e652}", + "bolt.alt":"\u{e653}", + "blackboard":"\u{e654}", + "bag":"\u{e655}", + "move":"\u{e656}", + "arrows.vertical":"\u{e657}", + "arrows.horizontal":"\u{e658}", + "fullscreen":"\u{e659}", + "arrow.top.right":"\u{e65a}", + "arrow.top.left":"\u{e65b}", + "arrow.circle.up":"\u{e65c}", + "arrow.circle.right":"\u{e65d}", + "arrow.circle.left":"\u{e65e}", + "arrow.circle.down":"\u{e65f}", + "angle.double.up":"\u{e660}", + "angle.double.right":"\u{e661}", + "angle.double.left":"\u{e662}", + "angle.double.down":"\u{e663}", + "zip":"\u{e664}", + "world":"\u{e665}", + "wheelchair":"\u{e666}", + "view.list":"\u{e667}", + "view.list.alt":"\u{e668}", + "view.grid":"\u{e669}", + "uppercase":"\u{e66a}", + "upload":"\u{e66b}", + "underline":"\u{e66c}", + "truck":"\u{e66d}", + "timer":"\u{e66e}", + "ticket":"\u{e66f}", + "thumb.up":"\u{e670}", + "thumb.down":"\u{e671}", + "text":"\u{e672}", + "stats.up":"\u{e673}", + "stats.down":"\u{e674}", + "split.v":"\u{e675}", + "split.h":"\u{e676}", + "smallcap":"\u{e677}", + "shine":"\u{e678}", + "shift.right":"\u{e679}", + "shift.left":"\u{e67a}", + "shield":"\u{e67b}", + "notepad":"\u{e67c}", + "server":"\u{e67d}", + "quote.right":"\u{e67e}", + "quote.left":"\u{e67f}", + "pulse":"\u{e680}", + "printer":"\u{e681}", + "power.off":"\u{e682}", + "plug":"\u{e683}", + "pie.chart":"\u{e684}", + "paragraph":"\u{e685}", + "panel":"\u{e686}", + "package":"\u{e687}", + "music":"\u{e688}", + "music.alt":"\u{e689}", + "mouse":"\u{e68a}", + "mouse.alt":"\u{e68b}", + "money":"\u{e68c}", + "microphone":"\u{e68d}", + "menu":"\u{e68e}", + "menu.alt":"\u{e68f}", + "map":"\u{e690}", + "map.alt":"\u{e691}", + "loop":"\u{e692}", + "location.pin":"\u{e693}", + "list":"\u{e694}", + "light.bulb":"\u{e695}", + "Italic":"\u{e696}", + "info":"\u{e697}", + "infinite":"\u{e698}", + "id.badge":"\u{e699}", + "hummer":"\u{e69a}", + "home":"\u{e69b}", + "help":"\u{e69c}", + "headphone":"\u{e69d}", + "harddrives":"\u{e69e}", + "harddrive":"\u{e69f}", + "gift":"\u{e6a0}", + "game":"\u{e6a1}", + "filter":"\u{e6a2}", + "files":"\u{e6a3}", + "file":"\u{e6a4}", + "eraser":"\u{e6a5}", + "envelope":"\u{e6a6}", + "download":"\u{e6a7}", + "direction":"\u{e6a8}", + "direction.alt":"\u{e6a9}", + "dashboard":"\u{e6aa}", + "control.stop":"\u{e6ab}", + "control.shuffle":"\u{e6ac}", + "control.play":"\u{e6ad}", + "control.pause":"\u{e6ae}", + "control.forward":"\u{e6af}", + "control.backward":"\u{e6b0}", + "cloud":"\u{e6b1}", + "cloud.up":"\u{e6b2}", + "cloud.down":"\u{e6b3}", + "clipboard":"\u{e6b4}", + "car":"\u{e6b5}", + "calendar":"\u{e6b6}", + "book":"\u{e6b7}", + "bell":"\u{e6b8}", + "basketball":"\u{e6b9}", + "bar.chart":"\u{e6ba}", + "bar.chart.alt":"\u{e6bb}", + "back.right":"\u{e6bc}", + "back.left":"\u{e6bd}", + "arrows.corner":"\u{e6be}", + "archive":"\u{e6bf}", + "anchor":"\u{e6c0}", + "align.right":"\u{e6c1}", + "align.left":"\u{e6c2}", + "align.justify":"\u{e6c3}", + "align.center":"\u{e6c4}", + "alert":"\u{e6c5}", + "alarm.clock":"\u{e6c6}", + "agenda":"\u{e6c7}", + "write":"\u{e6c8}", + "window":"\u{e6c9}", + "widgetized":"\u{e6ca}", + "widget":"\u{e6cb}", + "widget.alt":"\u{e6cc}", + "wallet":"\u{e6cd}", + "video.clapper":"\u{e6ce}", + "video.camera":"\u{e6cf}", + "vector":"\u{e6d0}", + "themify.logo":"\u{e6d1}", + "themify.favicon":"\u{e6d2}", + "themify.favicon.alt":"\u{e6d3}", + "support":"\u{e6d4}", + "stamp":"\u{e6d5}", + "split.v.alt":"\u{e6d6}", + "slice":"\u{e6d7}", + "shortcode":"\u{e6d8}", + "shift.right.alt":"\u{e6d9}", + "shift.left.alt":"\u{e6da}", + "ruler.alt.2":"\u{e6db}", + "receipt":"\u{e6dc}", + "pin2":"\u{e6dd}", + "pin.alt":"\u{e6de}", + "pencil.alt2":"\u{e6df}", + "palette":"\u{e6e0}", + "more":"\u{e6e1}", + "more.alt":"\u{e6e2}", + "microphone.alt":"\u{e6e3}", + "magnet":"\u{e6e4}", + "line.double":"\u{e6e5}", + "line.dotted":"\u{e6e6}", + "line.dashed":"\u{e6e7}", + "layout.width.full":"\u{e6e8}", + "layout.width.default":"\u{e6e9}", + "layout.width.default.alt":"\u{e6ea}", + "layout.tab":"\u{e6eb}", + "layout.tab.window":"\u{e6ec}", + "layout.tab.v":"\u{e6ed}", + "layout.tab.min":"\u{e6ee}", + "layout.slider":"\u{e6ef}", + "layout.slider.alt":"\u{e6f0}", + "layout.sidebar.right":"\u{e6f1}", + "layout.sidebar.none":"\u{e6f2}", + "layout.sidebar.left":"\u{e6f3}", + "layout.placeholder":"\u{e6f4}", + "layout.menu":"\u{e6f5}", + "layout.menu.v":"\u{e6f6}", + "layout.menu.separated":"\u{e6f7}", + "layout.menu.full":"\u{e6f8}", + "layout.media.right.alt":"\u{e6f9}", + "layout.media.right":"\u{e6fa}", + "layout.media.overlay":"\u{e6fb}", + "layout.media.overlay.alt":"\u{e6fc}", + "layout.media.overlay.alt.2":"\u{e6fd}", + "layout.media.left.alt":"\u{e6fe}", + "layout.media.left":"\u{e6ff}", + "layout.media.center.alt":"\u{e700}", + "layout.media.center":"\u{e701}", + "layout.list.thumb":"\u{e702}", + "layout.list.thumb.alt":"\u{e703}", + "layout.list.post":"\u{e704}", + "layout.list.large.image":"\u{e705}", + "layout.line.solid":"\u{e706}", + "layout.grid4":"\u{e707}", + "layout.grid3":"\u{e708}", + "layout.grid2":"\u{e709}", + "layout.grid2.thumb":"\u{e70a}", + "layout.cta.right":"\u{e70b}", + "layout.cta.left":"\u{e70c}", + "layout.cta.center":"\u{e70d}", + "layout.cta.btn.right":"\u{e70e}", + "layout.cta.btn.left":"\u{e70f}", + "layout.column4":"\u{e710}", + "layout.column3":"\u{e711}", + "layout.column2":"\u{e712}", + "layout.accordion.separated":"\u{e713}", + "layout.accordion.merged":"\u{e714}", + "layout.accordion.list":"\u{e715}", + "ink.pen":"\u{e716}", + "info.alt":"\u{e717}", + "help.alt":"\u{e718}", + "headphone.alt":"\u{e719}", + "hand.point.up":"\u{e71a}", + "hand.point.right":"\u{e71b}", + "hand.point.left":"\u{e71c}", + "hand.point.down":"\u{e71d}", + "gallery":"\u{e71e}", + "face.smile":"\u{e71f}", + "face.sad":"\u{e720}", + "credit.card":"\u{e721}", + "control.skip.forward":"\u{e722}", + "control.skip.backward":"\u{e723}", + "control.record":"\u{e724}", + "control.eject":"\u{e725}", + "comments.smiley":"\u{e726}", + "brush.alt":"\u{e727}", + "youtube":"\u{e728}", + "vimeo":"\u{e729}", + "twitter":"\u{e72a}", + "time":"\u{e72b}", + "tumblr":"\u{e72c}", + "skype":"\u{e72d}", + "share":"\u{e72e}", + "share.alt":"\u{e72f}", + "rocket":"\u{e730}", + "pinterest":"\u{e731}", + "new.window":"\u{e732}", + "microsoft":"\u{e733}", + "list.ol":"\u{e734}", + "linkedin":"\u{e735}", + "layout.sidebar.2":"\u{e736}", + "layout.grid4.alt":"\u{e737}", + "layout.grid3.alt":"\u{e738}", + "layout.grid2.alt":"\u{e739}", + "layout.column4.alt":"\u{e73a}", + "layout.column3.alt":"\u{e73b}", + "layout.column2.alt":"\u{e73c}", + "instagram":"\u{e73d}", + "google":"\u{e73e}", + "github":"\u{e73f}", + "flickr":"\u{e740}", + "facebook":"\u{e741}", + "dropbox":"\u{e742}", + "dribbble":"\u{e743}", + "apple":"\u{e744}", + "android":"\u{e745}", + "save":"\u{e746}", + "save.alt":"\u{e747}", + "yahoo":"\u{e748}", + "wordpress":"\u{e749}", + "vimeo.alt":"\u{e74a}", + "twitter.alt":"\u{e74b}", + "tumblr.alt":"\u{e74c}", + "trello":"\u{e74d}", + "stack.overflow":"\u{e74e}", + "soundcloud":"\u{e74f}", + "sharethis":"\u{e750}", + "sharethis.alt":"\u{e751}", + "reddit":"\u{e752}", + "pinterest.alt":"\u{e753}", + "microsoft.alt":"\u{e754}", + "linux":"\u{e755}", + "jsfiddle":"\u{e756}", + "joomla":"\u{e757}", + "html5":"\u{e758}", + "flickr.alt":"\u{e759}", + "email":"\u{e75a}", + "drupal":"\u{e75b}", + "dropbox.alt":"\u{e75c}", + "css3":"\u{e75d}", + "rss":"\u{e75e}", + "rss.alt":"\u{e75f}" +]