├── .github └── workflows │ └── swift.yml ├── .gitignore ├── AAInfographics-Pro.podspec ├── AAInfographics-Pro ├── AAChartCreator │ ├── AAChartModel.swift │ ├── AAChartView.swift │ ├── AAOptions.swift │ ├── AASerializable.swift │ └── AASeriesElement.swift ├── AAJSFiles.bundle │ ├── AAChartView.html │ ├── AAMaster │ │ ├── AAEasing.js │ │ ├── AAFunnel.js │ │ ├── AAHighcharts-More.js │ │ ├── AAHighcharts.js │ │ └── AARounded-Corners.js │ └── AAModules │ │ ├── AAArc-Diagram.js │ │ ├── AABullet.js │ │ ├── AAData.js │ │ ├── AADependency-Wheel.js │ │ ├── AADumbbell.js │ │ ├── AAFlame.js │ │ ├── AAHeatmap.js │ │ ├── AAHistogram-Bellcurve.js │ │ ├── AAItem-Series.js │ │ ├── AALollipop.js │ │ ├── AANetworkgraph.js │ │ ├── AAOldie.js │ │ ├── AAOrganization.js │ │ ├── AAParallel-coordinates.js │ │ ├── AAPareto.js │ │ ├── AAPattern-Fill.js │ │ ├── AASankey.js │ │ ├── AASolid-Gauge.js │ │ ├── AAStreamgraph.js │ │ ├── AASunburst.js │ │ ├── AATilemap.js │ │ ├── AATimeline.js │ │ ├── AATreemap.js │ │ ├── AAVariable-Pie.js │ │ ├── AAVariwide.js │ │ ├── AAVector.js │ │ ├── AAVenn.js │ │ ├── AAWindbarb.js │ │ ├── AAWordcloud.js │ │ └── AAXrange.js ├── AAOptionsModel │ ├── AAAnimation.swift │ ├── AAAxis.swift │ ├── AABoxplot.swift │ ├── AAChart.swift │ ├── AACredits.swift │ ├── AACrosshair.swift │ ├── AADataLabels.swift │ ├── AALabel.swift │ ├── AALabels.swift │ ├── AALang.swift │ ├── AALegend.swift │ ├── AAMarker.swift │ ├── AAPane.swift │ ├── AAPlotBandsElement.swift │ ├── AAPlotLinesElement.swift │ ├── AAPlotOptions.swift │ ├── AAScrollablePlotArea.swift │ ├── AASeries.swift │ ├── AAStates.swift │ ├── AAStyle.swift │ ├── AASubtitle.swift │ ├── AATitle.swift │ ├── AATooltip.swift │ ├── AAXAxis.swift │ └── AAYAxis.swift ├── AAOptionsProModel │ ├── AABulletDataElement.swift │ ├── AAColorAxis.swift │ ├── AAData.swift │ ├── AAHeatmap.swift │ ├── AAItem.swift │ ├── AALayoutAlgorithm.swift │ ├── AALevelsElement.swift │ ├── AAPackedbubble.swift │ ├── AAParallelAxes.swift │ ├── AASolidgauge.swift │ ├── AASolidgaugeDataElement.swift │ └── AATreemap.swift ├── AATool │ ├── AAColor.swift │ ├── AAExtension.swift │ └── AAGradientColor.swift ├── PackageBundlePathLoader.swift └── ProjectBundlePathLoader.swift ├── AAInfographics-ProDemo.xcodeproj ├── project.pbxproj └── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ └── IDEWorkspaceChecks.plist ├── AAInfographics-ProDemo ├── AAInfographics-ProDemo.entitlements ├── AppDelegate.swift ├── Assets.xcassets │ ├── AccentColor.colorset │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard ├── Demo │ ├── AAPlugins │ │ ├── AABoost │ │ │ ├── AABoost.js │ │ │ ├── AABoost.swift │ │ │ ├── AABoostChartComposer.swift │ │ │ ├── AABoostFractalChartComposer.swift │ │ │ ├── AAExtraFractalChartData.swift │ │ │ ├── AAFractalChartData.swift │ │ │ └── AAFractalJuliaSetData.swift │ │ └── AADrilldown │ │ │ ├── AABoostChartVC.swift │ │ │ ├── AADrilldown.js │ │ │ ├── AADrilldown.swift │ │ │ ├── AADrilldownChartComposer.swift │ │ │ ├── AADrilldownChartVC.swift │ │ │ ├── AAOptions+Boost.swift │ │ │ └── AAOptions+Drilldown.swift │ ├── Composer │ │ ├── AABubbleChartComposer.swift │ │ ├── AAColumnVariantChartComposer.swift │ │ ├── AAHeatOrTreeMapChartComposer.swift │ │ └── AARelationshipChartComposer.swift │ ├── DataSource │ │ ├── AAOptionsCSV.swift │ │ ├── AAOptionsData.swift │ │ ├── AAOptionsSeries.swift │ │ ├── DataJsonFiles │ │ │ ├── arcdiagram1Data.json │ │ │ ├── arcdiagram2Data.json │ │ │ ├── arcdiagram3Data.json │ │ │ ├── bellcurveData.json │ │ │ ├── bigHeatmapData.json │ │ │ ├── columnpyramidData.json │ │ │ ├── dependencywheelData.json │ │ │ ├── drilldownTreemapData.json │ │ │ ├── dumbbellData.json │ │ │ ├── eulerData.json │ │ │ ├── flameData.json │ │ │ ├── heatmapData.json │ │ │ ├── itemData.json │ │ │ ├── lollipopData.json │ │ │ ├── marathonData.json │ │ │ ├── networkgraphData.json │ │ │ ├── organizationData.json │ │ │ ├── organizationNodesData.json │ │ │ ├── sankeyData.json │ │ │ ├── simpleDependencyWheelData.json │ │ │ ├── simpleTilemapData.json │ │ │ ├── sunburst2Data.json │ │ │ ├── sunburstData.json │ │ │ ├── tilemapData.json │ │ │ ├── tilemapForAfricaData.json │ │ │ ├── timeline2Data.json │ │ │ ├── timelineData.json │ │ │ ├── treemapWithColorAxisData.json │ │ │ ├── treemapWithLevelsData.json │ │ │ ├── variablepieData.json │ │ │ ├── variwideData.json │ │ │ ├── vectorData.json │ │ │ ├── vennData.json │ │ │ ├── volinPlotElement1Data.json │ │ │ ├── volinPlotElement2Data.json │ │ │ ├── windbarbData.json │ │ │ └── wordcloudData.json │ │ └── SeriesJsonFiles │ │ │ ├── packedbubbleSeries.json │ │ │ └── streamgraphSeries.json │ ├── MainVC.swift │ └── ViewController │ │ ├── AABaseChartVC.swift │ │ ├── AABubbleChartVC.swift │ │ ├── AAColumnVariantChartVC.swift │ │ ├── AAHeatOrTreeMapChartVC.swift │ │ ├── AARelationshipChartVC.swift │ │ ├── ChartProVC.swift │ │ ├── CustomClickEventCallbackMessageVC.swift │ │ ├── CustomClickEventCallbackMessageVC2.swift │ │ ├── FractalChartListVC.swift │ │ ├── OfficialChartSample.swift │ │ └── OfficialChartSampleVC.swift ├── Info.plist ├── SceneDelegate.swift └── ViewController.swift ├── AAInfographics-ProDemoTests ├── AAInfographics_ProDemoTests.swift └── Info.plist ├── AAInfographics-ProDemoUITests ├── AAInfographics_ProDemoUITests.swift └── Info.plist ├── CHINESE-README.md ├── Package.swift └── README.md /.github/workflows/swift.yml: -------------------------------------------------------------------------------- 1 | # name: Swift 2 | 3 | # on: 4 | # push: 5 | # branches: [ "master" ] 6 | # pull_request: 7 | # branches: [ "master" ] 8 | 9 | # jobs: 10 | # build: 11 | 12 | # runs-on: macos-latest 13 | 14 | # steps: 15 | # - uses: actions/checkout@v3 16 | # - name: Build 17 | # run: swift build -v 18 | # - name: Run tests 19 | # run: swift test -v 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 4 | 5 | ## User settings 6 | xcuserdata/ 7 | 8 | ## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) 9 | *.xcscmblueprint 10 | *.xccheckout 11 | 12 | ## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) 13 | build/ 14 | DerivedData/ 15 | *.moved-aside 16 | *.pbxuser 17 | !default.pbxuser 18 | *.mode1v3 19 | !default.mode1v3 20 | *.mode2v3 21 | !default.mode2v3 22 | *.perspectivev3 23 | !default.perspectivev3 24 | 25 | ## Obj-C/Swift specific 26 | *.hmap 27 | 28 | ## App packaging 29 | *.ipa 30 | *.dSYM.zip 31 | *.dSYM 32 | 33 | ## Playgrounds 34 | timeline.xctimeline 35 | playground.xcworkspace 36 | 37 | # Swift Package Manager 38 | # 39 | # Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. 40 | # Packages/ 41 | # Package.pins 42 | # Package.resolved 43 | # *.xcodeproj 44 | # 45 | # Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata 46 | # hence it is not needed unless you have added a package configuration file to your project 47 | # .swiftpm 48 | 49 | .build/ 50 | 51 | # CocoaPods 52 | # 53 | # We recommend against adding the Pods directory to your .gitignore. However 54 | # you should judge for yourself, the pros and cons are mentioned at: 55 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 56 | # 57 | # Pods/ 58 | # 59 | # Add this line if you want to avoid checking in source code from the Xcode workspace 60 | # *.xcworkspace 61 | 62 | # Carthage 63 | # 64 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 65 | # Carthage/Checkouts 66 | 67 | Carthage/Build/ 68 | 69 | # Accio dependency management 70 | Dependencies/ 71 | .accio/ 72 | 73 | # fastlane 74 | # 75 | # It is recommended to not store the screenshots in the git repo. 76 | # Instead, use fastlane to re-generate the screenshots whenever they are needed. 77 | # For more information about the recommended setup visit: 78 | # https://docs.fastlane.tools/best-practices/source-control/#source-control 79 | 80 | fastlane/report.xml 81 | fastlane/Preview.html 82 | fastlane/screenshots/**/*.png 83 | fastlane/test_output 84 | 85 | # Code Injection 86 | # 87 | # After new code Injection tools there's a generated folder /iOSInjectionProject 88 | # https://github.com/johnno1962/injectionforxcode 89 | 90 | iOSInjectionProject/ 91 | 92 | # JetBrains 93 | .idea 94 | -------------------------------------------------------------------------------- /AAInfographics-Pro.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'AAInfographics-Pro' 3 | s.version = '0.0.4' 4 | s.summary = '📈📊👑👑👑AAChartKit-Swift-Pro is a professional version of AAChartKit-Swift, it is an elegant and friendly chart framework for iOS, iPadOS, macOS. AAChartKit-Swift-Pro is a more powerful data visualization framework that supports more types beautiful chart like bellcurve, bullet, columnpyramid, cylinder, dependencywheel, heatmap, histogram, networkgraph, organization, packedbubble, pareto, sankey, series, solidgauge, streamgraph, sunburst, tilemap, timeline, treemap, variablepie, variwide, vector, venn, windbarb, wordcloud, xrange charts and so on.' 5 | s.homepage = 'https://github.com/AAChartModel/AAChartKit-Swift-Pro' 6 | s.license = 'Just For Test Demo' 7 | s.authors = {'An An' => '2236368544@qq.com'} 8 | s.ios.deployment_target = '11.0' 9 | s.osx.deployment_target = '10.13' 10 | s.source = {:git => 'https://github.com/AAChartModel/AAChartKit-Swift-Pro.git', :tag => s.version} 11 | s.source_files = 'AAInfographics-Pro/**/*.{swift}' 12 | s.exclude_files = 'AAInfographics-Pro/**/PackageBundlePathLoader.swift' 13 | s.resources = "AAInfographics-Pro/AAJSFiles.bundle" 14 | s.requires_arc = true 15 | s.swift_version = '5.0' 16 | end 17 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAChartCreator/AASerializable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AASerializable.swift 3 | // AAChartKit-Swift 4 | // 5 | // Created by An An on 17/4/19. 6 | // Copyright © 2017年 An An . All rights reserved. 7 | //*************** ...... SOURCE CODE ...... *************** 8 | //***...................................................*** 9 | //*** https://github.com/AAChartModel/AAChartKit *** 10 | //*** https://github.com/AAChartModel/AAChartKit-Swift *** 11 | //***...................................................*** 12 | //*************** ...... SOURCE CODE ...... *************** 13 | 14 | /* 15 | 16 | * ------------------------------------------------------------------------------- 17 | * 18 | * 🌕 🌖 🌗 🌘 ❀❀❀ WARM TIPS!!! ❀❀❀ 🌑 🌒 🌓 🌔 19 | * 20 | * Please contact me on GitHub,if there are any problems encountered in use. 21 | * GitHub Issues : https://github.com/AAChartModel/AAChartKit-Swift/issues 22 | * ------------------------------------------------------------------------------- 23 | * And if you want to contribute for this project, please contact me as well 24 | * GitHub : https://github.com/AAChartModel 25 | * StackOverflow : https://stackoverflow.com/users/12302132/codeforu 26 | * JianShu : https://www.jianshu.com/u/f1e6753d4254 27 | * SegmentFault : https://segmentfault.com/u/huanghunbieguan 28 | * 29 | * ------------------------------------------------------------------------------- 30 | 31 | */ 32 | 33 | 34 | import Foundation 35 | 36 | public class AAObject { } 37 | 38 | 39 | @available(iOS 10.0, macCatalyst 13.1, macOS 10.13, *) 40 | public extension AAObject { 41 | var classNameString: String { 42 | let nameClass: AnyClass! = object_getClass(self) 43 | return NSStringFromClass(nameClass) 44 | } 45 | } 46 | 47 | @available(iOS 10.0, macCatalyst 13.1, macOS 10.13, *) 48 | public protocol AASerializableWithComputedProperties { 49 | /// 返回计算属性的键值对 50 | func computedProperties() -> [String: Any] 51 | } 52 | 53 | @available(iOS 10.0, macCatalyst 13.1, macOS 10.13, *) 54 | public extension AAObject { 55 | 56 | fileprivate func loopForMirrorChildren(_ mirrorChildren: Mirror.Children, _ representation: inout [String : Any]) { 57 | for case let (label?, value) in mirrorChildren { 58 | switch value { 59 | case let value as AAObject: do { 60 | representation[label] = value.toDic() 61 | } 62 | 63 | case let value as [AAObject]: do { 64 | var aaObjectArr = [Any]() 65 | 66 | let valueCount = value.count 67 | for i in 0 ..< valueCount { 68 | let aaObject = value[i] 69 | let aaObjectDic = aaObject.toDic() 70 | aaObjectArr.append(aaObjectDic as Any) 71 | } 72 | 73 | representation[label] = aaObjectArr 74 | } 75 | 76 | case let value as NSObject: do { 77 | representation[label] = value 78 | } 79 | 80 | default: 81 | // Ignore any unserializable properties 82 | break 83 | } 84 | } 85 | } 86 | 87 | func toDic() -> [String: Any] { 88 | var representation = [String: Any]() 89 | 90 | // 遍历当前类的反射子属性 91 | let mirrorChildren = Mirror(reflecting: self).children 92 | loopForMirrorChildren(mirrorChildren, &representation) 93 | 94 | // 遍历父类的反射子属性 95 | let superMirrorChildren = Mirror(reflecting: self).superclassMirror?.children 96 | if superMirrorChildren?.count ?? 0 > 0 { 97 | loopForMirrorChildren(superMirrorChildren!, &representation) 98 | } 99 | 100 | // 如果实现了 SerializableWithComputedProperties 协议,获取计算属性 101 | if let selfWithComputed = self as? AASerializableWithComputedProperties { 102 | let computedProps = selfWithComputed.computedProperties() 103 | for (key, value) in computedProps { 104 | representation[key] = value 105 | } 106 | } 107 | 108 | return representation 109 | } 110 | 111 | func toJSON() -> String { 112 | do { 113 | let data = try JSONSerialization.data(withJSONObject: toDic() as Any, options: []) 114 | guard let jsonStr = String(data: data, encoding: String.Encoding.utf8) else { return "" } 115 | return jsonStr 116 | } catch { 117 | return "" 118 | } 119 | } 120 | 121 | } 122 | 123 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAJSFiles.bundle/AAMaster/AAEasing.js: -------------------------------------------------------------------------------- 1 | 2 | function configureTheChartAnimationEasingType(easingType){switch(easingType){case 1:return function(pos){return Math.pow(pos,2)};case 2:return function(pos){return -(Math.pow((pos-1),2)-1)};case 3:return function(pos){if((pos/=0.5)<1){return 0.5*Math.pow(pos,2)}return -0.5*((pos-=2)*pos-2)};case 4:return function(pos){return Math.pow(pos,3)};case 5:return function(pos){return(Math.pow((pos-1),3)+1)};case 6:return function(pos){if((pos/=0.5)<1){return 0.5*Math.pow(pos,3)}return 0.5*(Math.pow((pos-2),3)+2)};case 7:return function(pos){return Math.pow(pos,4)};case 8:return function(pos){return -(Math.pow((pos-1),4)-1)};case 9:return function(pos){if((pos/=0.5)<1){return 0.5*Math.pow(pos,4)}return -0.5*((pos-=2)*Math.pow(pos,3)-2)};case 10:return function(pos){return Math.pow(pos,5)};case 11:return function(pos){return(Math.pow((pos-1),5)+1)};case 12:return function(pos){if((pos/=0.5)<1){return 0.5*Math.pow(pos,5)}return 0.5*(Math.pow((pos-2),5)+2)};case 13:return function(pos){return -Math.cos(pos*(Math.PI/2))+1};case 14:return function(pos){return Math.sin(pos*(Math.PI/2))};case 15:return function(pos){return(-0.5*(Math.cos(Math.PI*pos)-1))};case 16:return function(pos){return(pos===0)?0:Math.pow(2,10*(pos-1))};case 17:return function(pos){return(pos===1)?1:-Math.pow(2,-10*pos)+1};case 18:return function(pos){if(pos===0){return 0}if(pos===1){return 1}if((pos/=0.5)<1){return 0.5*Math.pow(2,10*(pos-1))}return 0.5*(-Math.pow(2,-10*--pos)+2)};case 19:return function(pos){return -(Math.sqrt(1-(pos*pos))-1)};case 20:return function(pos){return Math.sqrt(1-Math.pow((pos-1),2))};case 21:return function(pos){if((pos/=0.5)<1){return -0.5*(Math.sqrt(1-pos*pos)-1)}return 0.5*(Math.sqrt(1-(pos-=2)*pos)+1)};case 22:return function(pos){if((pos)<(1/2.75)){return(7.5625*pos*pos)}else{if(pos<(2/2.75)){return(7.5625*(pos-=(1.5/2.75))*pos+0.75)}else{if(pos<(2.5/2.75)){return(7.5625*(pos-=(2.25/2.75))*pos+0.9375)}else{return(7.5625*(pos-=(2.625/2.75))*pos+0.984375)}}}};case 23:return function(pos){var s=1.70158;return(pos)*pos*((s+1)*pos-s)};case 24:return function(pos){var s=1.70158;return(pos=pos-1)*pos*((s+1)*pos+s)+1};case 25:return function(pos){var s=1.70158;if((pos/=0.5)<1){return 0.5*(pos*pos*(((s*=(1.525))+1)*pos-s))}return 0.5*((pos-=2)*pos*(((s*=(1.525))+1)*pos+s)+2)};case 26:return function(pos){return -1*Math.pow(4,-8*pos)*Math.sin((pos*6-1)*(2*Math.PI)/2)+1};case 27:return function(pos){var s=1.70158;return((pos/=0.5)<1)?0.5*(pos*pos*(((s*=(1.525))+1)*pos-s)):0.5*((pos-=2)*pos*(((s*=(1.525))+1)*pos+s)+2)};case 28:return function(pos){var s=1.70158;return pos*pos*((s+1)*pos-s)};case 29:return function(pos){var s=1.70158;return(pos-=1)*pos*((s+1)*pos+s)+1};case 30:return function(pos){if(pos<(1/2.75)){return(7.5625*pos*pos)}else{if(pos<(2/2.75)){return(7.5625*(pos-=(1.5/2.75))*pos+0.75)}else{if(pos<(2.5/2.75)){return(7.5625*(pos-=(2.25/2.75))*pos+0.9375)}else{return(7.5625*(pos-=(2.625/2.75))*pos+0.984375)}}}};case 31:return function(pos){if(pos<(1/2.75)){return(7.5625*pos*pos)}else{if(pos<(2/2.75)){return 2-(7.5625*(pos-=(1.5/2.75))*pos+0.75)}else{if(pos<(2.5/2.75)){return 2-(7.5625*(pos-=(2.25/2.75))*pos+0.9375)}else{return 2-(7.5625*(pos-=(2.625/2.75))*pos+0.984375)}}}};case 32:return function(pos){if((pos/=0.5)<1){return 0.5*Math.pow(pos,4)}return -0.5*((pos-=2)*Math.pow(pos,3)-2)};case 33:return function(pos){return Math.pow(pos,4)};case 34:return function(pos){return Math.pow(pos,0.25)}}}; 3 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAJSFiles.bundle/AAMaster/AARounded-Corners.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Highcharts plugin for creating individual rounded corners. 3 | * 4 | * Author: Torstein Honsi 5 | * Version: 1.0.5 6 | * License: MIT License 7 | */ 8 | (function (factory) { 9 | "use strict"; 10 | 11 | if (typeof module === "object" && module.exports) { 12 | module.exports = factory; 13 | } else { 14 | factory(Highcharts); 15 | } 16 | }(function (H) { 17 | var rel = H.relativeLength; 18 | 19 | H.wrap(H.seriesTypes.column.prototype, 'translate', function (proceed) { 20 | var options = this.options, 21 | topMargin = options.topMargin || 0, 22 | bottomMargin = options.bottomMargin || 0; 23 | 24 | proceed.call(this); 25 | 26 | this.points.forEach(function (point) { 27 | var shapeArgs = point.shapeArgs, 28 | w = shapeArgs.width, 29 | h = shapeArgs.height, 30 | x = shapeArgs.x, 31 | y = shapeArgs.y; 32 | 33 | // Get the radius 34 | var rTopLeft = rel(options.borderRadiusTopLeft || 0, w), 35 | rTopRight = rel(options.borderRadiusTopRight || 0, w), 36 | rBottomRight = rel(options.borderRadiusBottomRight || 0, w), 37 | rBottomLeft = rel(options.borderRadiusBottomLeft || 0, w); 38 | 39 | if (rTopLeft || rTopRight || rBottomRight || rBottomLeft) { 40 | var maxR = Math.min(w, h) / 2 41 | 42 | if (rTopLeft > maxR) { 43 | rTopLeft = maxR; 44 | } 45 | 46 | if (rTopRight > maxR) { 47 | rTopRight = maxR; 48 | } 49 | 50 | if (rBottomRight > maxR) { 51 | rBottomRight = maxR; 52 | } 53 | 54 | if (rBottomLeft > maxR) { 55 | rBottomLeft = maxR; 56 | } 57 | 58 | // Preserve the box for data labels 59 | point.dlBox = point.shapeArgs; 60 | 61 | point.shapeType = 'path'; 62 | point.shapeArgs = { 63 | d: [ 64 | ['M', x + rTopLeft, y + topMargin], 65 | // top side 66 | ['L', x + w - rTopRight, y + topMargin], 67 | // top right corner 68 | ['C', x + w - rTopRight / 2, y, x + w, y + rTopRight / 2, x + w, y + rTopRight], 69 | // right side 70 | ['L', x + w, y + h - rBottomRight], 71 | // bottom right corner 72 | ['C', x + w, y + h - rBottomRight / 2, x + w - rBottomRight / 2, y + h, x + w - rBottomRight, y + h + bottomMargin], 73 | // bottom side 74 | ['L', x + rBottomLeft, y + h + bottomMargin], 75 | // bottom left corner 76 | ['C', x + rBottomLeft / 2, y + h, x, y + h - rBottomLeft / 2, x, y + h - rBottomLeft], 77 | // left side 78 | ['L', x, y + rTopLeft], 79 | // top left corner 80 | ['C', x, y + rTopLeft / 2, x + rTopLeft / 2, y, x + rTopLeft, y], 81 | ['Z'] 82 | ] 83 | }; 84 | } 85 | 86 | }); 87 | }); 88 | })); 89 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAJSFiles.bundle/AAModules/AABullet.js: -------------------------------------------------------------------------------- 1 | /* 2 | Highcharts JS v10.0.0 (2022-03-07) 3 | 4 | Bullet graph series type for Highcharts 5 | 6 | (c) 2010-2021 Kacper Madej 7 | 8 | License: www.highcharts.com/license 9 | */ 10 | (function(b){"object"===typeof module&&module.exports?(b["default"]=b,module.exports=b):"function"===typeof define&&define.amd?define("highcharts/modules/bullet",["highcharts"],function(e){b(e);b.Highcharts=e;return b}):b("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(b){function e(b,d,a,r){b.hasOwnProperty(d)||(b[d]=r.apply(null,a),"function"===typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:d,module:b[d]}})))}b=b?b._modules:{};e(b,"Series/Bullet/BulletPoint.js", 11 | [b["Series/Column/ColumnSeries.js"]],function(b){var d=this&&this.__extends||function(){var b=function(a,c){b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,a){b.__proto__=a}||function(b,a){for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c])};return b(a,c)};return function(a,c){function d(){this.constructor=a}b(a,c);a.prototype=null===c?Object.create(c):(d.prototype=c.prototype,new d)}}();return function(b){function a(){var a=null!==b&&b.apply(this,arguments)||this;a.options=void 0; 12 | a.series=void 0;return a}d(a,b);a.prototype.destroy=function(){this.targetGraphic&&(this.targetGraphic=this.targetGraphic.destroy());b.prototype.destroy.apply(this,arguments)};return a}(b.prototype.pointClass)});e(b,"Series/Bullet/BulletSeries.js",[b["Series/Bullet/BulletPoint.js"],b["Core/Series/SeriesRegistry.js"],b["Core/Utilities.js"]],function(b,d,a){var e=this&&this.__extends||function(){var b=function(a,f){b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,a){b.__proto__=a}|| 13 | function(b,a){for(var f in a)a.hasOwnProperty(f)&&(b[f]=a[f])};return b(a,f)};return function(a,f){function k(){this.constructor=a}b(a,f);a.prototype=null===f?Object.create(f):(k.prototype=f.prototype,new k)}}(),c=d.seriesTypes.column,t=a.extend,l=a.isNumber,u=a.merge,p=a.pick,v=a.relativeLength;a=function(b){function a(){var a=null!==b&&b.apply(this,arguments)||this;a.data=void 0;a.options=void 0;a.points=void 0;a.targetData=void 0;return a}e(a,b);a.prototype.drawPoints=function(){var a=this,k=a.chart, 14 | c=a.options,d=c.animationLimit||250;b.prototype.drawPoints.apply(this,arguments);a.points.forEach(function(b){var f=b.options,e=b.target,q=b.y,g=b.targetGraphic;if(l(e)&&null!==e){var h=u(c.targetOptions,f.targetOptions);var r=h.height;var m=b.shapeArgs;b.dlBox&&m&&!l(m.width)&&(m=b.dlBox);var n=v(h.width,m.width);var t=a.yAxis.translate(e,!1,!0,!1,!0)-h.height/2-.5;n=a.crispCol.apply({chart:k,borderWidth:h.borderWidth,options:{crisp:c.crisp}},[m.x+m.width/2-n/2,t,n,r]);g?(g[k.pointCount\u25cf {series.name}: {point.y}. Target: {point.target}
'}}); 17 | return a}(c);t(a.prototype,{parallelArrays:["x","y","target"],pointArrayMap:["y","target"]});a.prototype.pointClass=b;d.registerSeriesType("bullet",a);"";return a});e(b,"masters/modules/bullet.src.js",[],function(){})}); 18 | //# sourceMappingURL=bullet.js.map -------------------------------------------------------------------------------- /AAInfographics-Pro/AAJSFiles.bundle/AAModules/AADependency-Wheel.js: -------------------------------------------------------------------------------- 1 | /* 2 | Highcharts JS v10.0.0 (2022-03-07) 3 | 4 | Dependency wheel module 5 | 6 | (c) 2010-2021 Torstein Honsi 7 | 8 | License: www.highcharts.com/license 9 | */ 10 | (function(b){"object"===typeof module&&module.exports?(b["default"]=b,module.exports=b):"function"===typeof define&&define.amd?define("highcharts/modules/dependency-wheel",["highcharts","highcharts/modules/sankey"],function(f){b(f);b.Highcharts=f;return b}):b("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(b){function f(b,h,f,e){b.hasOwnProperty(h)||(b[h]=e.apply(null,f),"function"===typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:h,module:b[h]}})))} 11 | b=b?b._modules:{};f(b,"Series/DependencyWheel/DependencyWheelPoint.js",[b["Core/Series/SeriesRegistry.js"],b["Core/Utilities.js"]],function(b,f){var h=this&&this.__extends||function(){var b=function(d,a){b=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,a){b.__proto__=a}||function(b,a){for(var d in a)a.hasOwnProperty(d)&&(b[d]=a[d])};return b(d,a)};return function(d,a){function e(){this.constructor=d}b(d,a);d.prototype=null===a?Object.create(a):(e.prototype=a.prototype,new e)}}(); 12 | return function(b){function d(){var a=null!==b&&b.apply(this,arguments)||this;a.angle=void 0;a.fromNode=void 0;a.index=void 0;a.linksFrom=void 0;a.linksTo=void 0;a.options=void 0;a.series=void 0;a.shapeArgs=void 0;a.toNode=void 0;return a}h(d,b);d.prototype.getDataLabelPath=function(b){var a=this.series.chart.renderer,d=this.shapeArgs,e=0>this.angle||this.angle>Math.PI,f=d.start||0,h=d.end||0;this.dataLabelPath||(this.dataLabelPath=a.arc({open:!0,longArc:Math.abs(Math.abs(f)-Math.abs(h))b.index){f=f.slice(0,c).reverse().concat(f.slice(c).reverse());var e=!0;break}e|| 17 | f.reverse();for(c=0;cMath.PI&&(e=2*Math.PI-e);e*=k;e\u25cf {series.name}: {point.y}
'}}); 13 | return a}(e);c(a.prototype,{pointArrayMap:["y"],pointValKey:"y",translatePoint:g.translate,drawPoint:g.drawPoints,drawDataLabels:h.drawDataLabels,setShapeArgs:h.translate,pointClass:b});d.registerSeriesType("lollipop",a);"";return a});c(b,"masters/modules/lollipop.src.js",[],function(){})}); 14 | //# sourceMappingURL=lollipop.js.map -------------------------------------------------------------------------------- /AAInfographics-Pro/AAJSFiles.bundle/AAModules/AAParallel-coordinates.js: -------------------------------------------------------------------------------- 1 | /* 2 | Highcharts JS v10.1.0 (2022-05-20) 3 | 4 | Support for parallel coordinates in Highcharts 5 | 6 | (c) 2010-2021 Pawel Fus 7 | 8 | License: www.highcharts.com/license 9 | */ 10 | (function(b){"object"===typeof module&&module.exports?(b["default"]=b,module.exports=b):"function"===typeof define&&define.amd?define("highcharts/modules/parallel-coordinates",["highcharts"],function(g){b(g);b.Highcharts=g;return b}):b("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(b){function g(b,k,g,q){b.hasOwnProperty(k)||(b[k]=q.apply(null,g),"function"===typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:k,module:b[k]}})))}b=b?b._modules: 11 | {};g(b,"Extensions/ParallelCoordinates.js",[b["Core/Axis/Axis.js"],b["Core/Chart/Chart.js"],b["Core/FormatUtilities.js"],b["Core/Globals.js"],b["Core/DefaultOptions.js"],b["Core/Series/Series.js"],b["Core/Utilities.js"]],function(b,k,g,q,x,r,d){function y(a){var c=this.series&&this.series.chart,b=a.apply(this,Array.prototype.slice.call(arguments,1)),h;if(c&&c.hasParallelCoordinates&&!n(b.formattedValue)){var e=c.yAxis[this.x];var f=e.options;c=(h=t(f.tooltipValueFormat,f.labels.format))?z(h,u(this, 12 | {value:this.y}),c):e.dateTime?c.time.dateFormat(c.time.resolveDTLFormat(f.dateTimeLabelFormats[e.tickPositions.info.unitName]).main,this.y):f.categories?f.categories[this.y]:this.y;b.formattedValue=b.point.formattedValue=c}return b}var z=g.format;g=x.setOptions;var l=d.addEvent,A=d.arrayMax,B=d.arrayMin,n=d.defined,C=d.erase,u=d.extend,m=d.merge,t=d.pick,v=d.splat,D=d.wrap;d=k.prototype;var w={lineWidth:0,tickLength:0,opposite:!0,type:"category"};g({chart:{parallelCoordinates:!1,parallelAxes:{lineWidth:1, 13 | title:{text:"",reserveSpace:!1},labels:{x:0,y:4,align:"center",reserveSpace:!1},offset:0}}});l(k,"init",function(a){a=a.args[0];var c=v(a.yAxis||{}),b=[],h=c.length;if(this.hasParallelCoordinates=a.chart&&a.chart.parallelCoordinates){for(this.setParallelInfo(a);h<=this.parallelInfo.counter;h++)b.push({});a.legend||(a.legend={});"undefined"===typeof a.legend.enabled&&(a.legend.enabled=!1);m(!0,a,{boost:{seriesThreshold:Number.MAX_VALUE},plotOptions:{series:{boostThreshold:Number.MAX_VALUE}}});a.yAxis= 14 | c.concat(b);a.xAxis=m(w,v(a.xAxis||{})[0])}});l(k,"update",function(a){a=a.options;a.chart&&(n(a.chart.parallelCoordinates)&&(this.hasParallelCoordinates=a.chart.parallelCoordinates),this.options.chart.parallelAxes=m(this.options.chart.parallelAxes,a.chart.parallelAxes));this.hasParallelCoordinates&&(a.series&&this.setParallelInfo(a),this.yAxis.forEach(function(a){a.update({},!1)}))});u(d,{setParallelInfo:function(a){var c=this;a=a.series;c.parallelInfo={counter:0};a.forEach(function(a){a.data&&(c.parallelInfo.counter= 15 | Math.max(c.parallelInfo.counter,a.data.length-1))})}});l(r,"bindAxes",function(a){if(this.chart.hasParallelCoordinates){var c=this;this.chart.axes.forEach(function(a){c.insert(a.series);a.isDirty=!0});c.xAxis=this.chart.xAxis[0];c.yAxis=this.chart.yAxis[0];a.preventDefault()}});l(r,"afterTranslate",function(){var a=this.chart,c=this.points,b=c&&c.length,h=Number.MAX_VALUE,e;if(this.chart.hasParallelCoordinates){for(e=0;e=d)&&("undefined"===typeof b||a<=b)){var k=e.color;c&&(c.dataClass=g);break}}else{this.logarithmic&&(a=this.val2lin(a));a=1-(this.max-a)/(this.max-this.min);for(g=b.length;g--&&!(a>b[g][0]););d=b[g]||b[g+1];b=b[g+1]||d;a=1-(b[0]-a)/(b[0]-d[0]|| 13 | 1);k=d.color.tweenTo(b.color,a)}return k}};a.init=function(a){c(a,b)}})(m||(m={}));return m});f(a,"Series/SolidGauge/SolidGaugeComposition.js",[a["Core/Renderer/SVG/SVGRenderer.js"]],function(a){a=a.prototype;var e=a.symbols.arc;a.symbols.arc=function(a,c,k,m,b){a=e(a,c,k,m,b);b&&b.rounded&&(k=((b.r||k)-(b.innerR||0))/2,c=a[0],b=a[2],"M"===c[0]&&"L"===b[0]&&(c=["A",k,k,0,1,1,c[1],c[2]],a[2]=["A",k,k,0,1,1,b[1],b[2]],a[4]=c));return a}});f(a,"Series/SolidGauge/SolidGaugeSeries.js",[a["Core/Legend/LegendSymbol.js"], 14 | a["Core/Series/SeriesRegistry.js"],a["Core/Axis/SolidGaugeAxis.js"],a["Core/Utilities.js"]],function(a,e,l,c){var k=this&&this.__extends||function(){var a=function(b,h){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var h in b)b.hasOwnProperty(h)&&(a[h]=b[h])};return a(b,h)};return function(b,h){function c(){this.constructor=b}a(b,h);b.prototype=null===h?Object.create(h):(c.prototype=h.prototype,new c)}}(),m=e.seriesTypes,b=m.gauge,f=m.pie.prototype, 15 | p=c.clamp,u=c.extend,n=c.isNumber,w=c.merge,g=c.pick,v=c.pInt,d={colorByPoint:!0,dataLabels:{y:0}};c=function(a){function c(){var b=null!==a&&a.apply(this,arguments)||this;b.data=void 0;b.points=void 0;b.options=void 0;b.axis=void 0;b.yAxis=void 0;b.startAngleRad=void 0;b.thresholdAngleRad=void 0;return b}k(c,a);c.prototype.translate=function(){var a=this.yAxis;l.init(a);!a.dataClasses&&a.options.dataClasses&&a.initDataClasses(a.options);a.initStops(a.options);b.prototype.translate.call(this)};c.prototype.drawPoints= 16 | function(){var a=this,b=a.yAxis,c=b.center,e=a.options,k=a.chart.renderer,d=e.overshoot,l=n(d)?d/180*Math.PI:0,f;n(e.threshold)&&(f=b.startAngleRad+b.translate(e.threshold,null,null,null,!0));this.thresholdAngleRad=g(f,b.startAngleRad);a.points.forEach(function(d){if(!d.isNull){var h=d.graphic,f=b.startAngleRad+b.translate(d.y,null,null,null,!0),m=v(g(d.options.radius,e.radius,100))*c[2]/200,q=v(g(d.options.innerRadius,e.innerRadius,60))*c[2]/200,r=b.toColor(d.y,d),t=Math.min(b.startAngleRad,b.endAngleRad), 17 | n=Math.max(b.startAngleRad,b.endAngleRad);"none"===r&&(r=d.color||a.color||"none");"none"!==r&&(d.color=r);f=p(f,t-l,n+l);!1===e.wrap&&(f=p(f,t,n));t=Math.min(f,a.thresholdAngleRad);f=Math.max(f,a.thresholdAngleRad);f-t>2*Math.PI&&(f=t+2*Math.PI);d.shapeArgs=q={x:c[0],y:c[1],r:m,innerR:q,start:t,end:f,rounded:e.rounded};d.startR=m;h?(m=q.d,h.animate(u({fill:r},q)),m&&(q.d=m)):d.graphic=h=k.arc(q).attr({fill:r,"sweep-flag":0}).add(a.group);a.chart.styledMode||("square"!==e.linecap&&h.attr({"stroke-linecap":"round", 18 | "stroke-linejoin":"round"}),h.attr({stroke:e.borderColor||"none","stroke-width":e.borderWidth||0}));h&&h.addClass(d.getClassName(),!0)}})};c.prototype.animate=function(a){a||(this.startAngleRad=this.thresholdAngleRad,f.animate.call(this,a))};c.defaultOptions=w(b.defaultOptions,d);return c}(b);u(c.prototype,{drawLegendSymbol:a.drawRectangle});e.registerSeriesType("solidgauge",c);"";return c});f(a,"masters/modules/solid-gauge.src.js",[],function(){})}); 19 | //# sourceMappingURL=solid-gauge.js.map -------------------------------------------------------------------------------- /AAInfographics-Pro/AAJSFiles.bundle/AAModules/AAStreamgraph.js: -------------------------------------------------------------------------------- 1 | /* 2 | Highcharts JS v10.0.0 (2022-03-07) 3 | 4 | Streamgraph module 5 | 6 | (c) 2010-2021 Torstein Honsi 7 | 8 | License: www.highcharts.com/license 9 | */ 10 | (function(a){"object"===typeof module&&module.exports?(a["default"]=a,module.exports=a):"function"===typeof define&&define.amd?define("highcharts/modules/streamgraph",["highcharts"],function(d){a(d);a.Highcharts=d;return a}):a("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(a){function d(a,e,d,f){a.hasOwnProperty(e)||(a[e]=f.apply(null,d),"function"===typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:e,module:a[e]}})))}a=a?a._modules:{}; 11 | d(a,"Series/Streamgraph/StreamgraphSeries.js",[a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,e){var d=this&&this.__extends||function(){var a=function(b,c){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,c){a.__proto__=c}||function(a,c){for(var b in c)c.hasOwnProperty(b)&&(a[b]=c[b])};return a(b,c)};return function(b,c){function d(){this.constructor=b}a(b,c);b.prototype=null===c?Object.create(c):(d.prototype=c.prototype,new d)}}(),f=a.seriesTypes.areaspline, 12 | h=e.merge;e=e.extend;var g=function(a){function b(){var c=null!==a&&a.apply(this,arguments)||this;c.data=void 0;c.points=void 0;c.options=void 0;return c}d(b,a);b.prototype.streamStacker=function(a,b,d){a[0]-=b.total/2;a[1]-=b.total/2;this.stackedYData[d]=a};b.defaultOptions=h(f.defaultOptions,{fillOpacity:1,lineWidth:0,marker:{enabled:!1},stacking:"stream"});return b}(f);e(g.prototype,{negStacks:!1});a.registerSeriesType("streamgraph",g);"";return g});d(a,"masters/modules/streamgraph.src.js",[], 13 | function(){})}); 14 | //# sourceMappingURL=streamgraph.js.map -------------------------------------------------------------------------------- /AAInfographics-Pro/AAJSFiles.bundle/AAModules/AAVariable-Pie.js: -------------------------------------------------------------------------------- 1 | /* 2 | Highcharts JS v10.0.0 (2022-03-07) 3 | 4 | Variable Pie module for Highcharts 5 | 6 | (c) 2010-2021 Grzegorz Blachliski 7 | 8 | License: www.highcharts.com/license 9 | */ 10 | (function(a){"object"===typeof module&&module.exports?(a["default"]=a,module.exports=a):"function"===typeof define&&define.amd?define("highcharts/modules/variable-pie",["highcharts"],function(e){a(e);a.Highcharts=e;return a}):a("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(a){function e(a,b,e,h){a.hasOwnProperty(b)||(a[b]=h.apply(null,e),"function"===typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:b,module:a[b]}})))}a=a?a._modules:{}; 11 | e(a,"Series/VariablePie/VariablePieSeries.js",[a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,b){var e=this&&this.__extends||function(){var a=function(b,c){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(c,a){c.__proto__=a}||function(c,a){for(var b in a)a.hasOwnProperty(b)&&(c[b]=a[b])};return a(b,c)};return function(b,c){function r(){this.constructor=b}a(b,c);b.prototype=null===c?Object.create(c):(r.prototype=c.prototype,new r)}}(),h=a.seriesTypes.pie,v=b.arrayMax, 12 | w=b.arrayMin,y=b.clamp,z=b.extend,A=b.fireEvent,B=b.merge,m=b.pick;b=function(a){function b(){var c=null!==a&&a.apply(this,arguments)||this;c.data=void 0;c.options=void 0;c.points=void 0;c.radii=void 0;return c}e(b,a);b.prototype.calculateExtremes=function(){var c=this.chart,a=this.options;var b=this.zData;var e=Math.min(c.plotWidth,c.plotHeight)-2*(a.slicedOffset||0),k={};c=this.center||this.getCenter();["minPointSize","maxPointSize"].forEach(function(c){var b=a[c],q=/%$/.test(b);b=parseInt(b,10); 13 | k[c]=q?e*b/100:2*b});this.minPxSize=c[3]+k.minPointSize;this.maxPxSize=y(c[2],c[3]+k.minPointSize,k.maxPointSize);b.length&&(c=m(a.zMin,w(b.filter(this.zValEval))),b=m(a.zMax,v(b.filter(this.zValEval))),this.getRadii(c,b,this.minPxSize,this.maxPxSize))};b.prototype.getRadii=function(c,b,a,e){var k=0,q=this.zData,r=q.length,l=[],h="radius"!==this.options.sizeBy,m=b-c;for(k;k=b?g=e/2:(g=01.5*Math.PI?d-=2*Math.PI:d<-Math.PI/2&&(d+=2*Math.PI);f.slicedTranslation={translateX:Math.round(Math.cos(d)*e),translateY:Math.round(Math.sin(d)* 16 | e)};var u=Math.cos(d)*c[2]/2;var w=Math.sin(d)*c[2]/2;p=Math.cos(d)*n;n*=Math.sin(d);f.tooltipPos=[c[0]+.7*u,c[1]+.7*w];f.half=d<-Math.PI/2||d>Math.PI/2?1:0;f.angle=d;u=Math.min(k,f.labelDistance/5);f.labelPosition={natural:{x:c[0]+p+Math.cos(d)*f.labelDistance,y:c[1]+n+Math.sin(d)*f.labelDistance},"final":{},alignment:f.half?"right":"left",connectorPosition:{breakAt:{x:c[0]+p+Math.cos(d)*u,y:c[1]+n+Math.sin(d)*u},touchingSliceAt:{x:c[0]+p,y:c[1]+n}}}}A(this,"afterTranslate")};b.prototype.zValEval= 17 | function(a){return"number"!==typeof a||isNaN(a)?null:!0};b.defaultOptions=B(h.defaultOptions,{minPointSize:"10%",maxPointSize:"100%",zMin:void 0,zMax:void 0,sizeBy:"area",tooltip:{pointFormat:'\u25cf {series.name}
Value: {point.y}
Size: {point.z}
'}});return b}(h);z(b.prototype,{pointArrayMap:["y","z"],parallelArrays:["x","y","z"]});a.registerSeriesType("variablepie",b);"";"";return b});e(a,"masters/modules/variable-pie.src.js",[],function(){})}); 18 | //# sourceMappingURL=variable-pie.js.map -------------------------------------------------------------------------------- /AAInfographics-Pro/AAJSFiles.bundle/AAModules/AAVariwide.js: -------------------------------------------------------------------------------- 1 | /* 2 | Highcharts JS v10.0.0 (2022-03-07) 3 | 4 | Highcharts variwide module 5 | 6 | (c) 2010-2021 Torstein Honsi 7 | 8 | License: www.highcharts.com/license 9 | */ 10 | (function(a){"object"===typeof module&&module.exports?(a["default"]=a,module.exports=a):"function"===typeof define&&define.amd?define("highcharts/modules/variwide",["highcharts"],function(h){a(h);a.Highcharts=h;return a}):a("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(a){function h(a,f,c,e){a.hasOwnProperty(f)||(a[f]=e.apply(null,c),"function"===typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:f,module:a[f]}})))}a=a?a._modules:{};h(a, 11 | "Series/Variwide/VariwidePoint.js",[a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,f){var c=this&&this.__extends||function(){var a=function(b,d){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d])};return a(b,d)};return function(b,d){function c(){this.constructor=b}a(b,d);b.prototype=null===d?Object.create(d):(c.prototype=d.prototype,new c)}}(),e=f.isNumber;return function(a){function b(){var b= 12 | null!==a&&a.apply(this,arguments)||this;b.crosshairWidth=void 0;b.options=void 0;b.series=void 0;return b}c(b,a);b.prototype.isValid=function(){return e(this.y)&&e(this.z)};return b}(a.seriesTypes.column.prototype.pointClass)});h(a,"Series/Variwide/VariwideComposition.js",[a["Core/Axis/Tick.js"],a["Core/Axis/Axis.js"],a["Core/Utilities.js"]],function(a,f,c){var e=c.addEvent;c=c.wrap;a.prototype.postTranslate=function(a,b,c){var d=this.axis,g=a[b]-d.pos;d.horiz||(g=d.len-g);g=d.series[0].postTranslate(c, 13 | g);d.horiz||(g=d.len-g);a[b]=d.pos+g};e(f,"afterDrawCrosshair",function(a){this.variwide&&this.cross&&this.cross.attr("stroke-width",a.point&&a.point.crosshairWidth)});e(f,"afterRender",function(){var a=this;!this.horiz&&this.variwide&&this.chart.labelCollectors.push(function(){return a.tickPositions.filter(function(b){return a.ticks[b].label}).map(function(b,d){b=a.ticks[b].label;b.labelrank=a.zData[d];return b})})});e(a,"afterGetPosition",function(a){var b=this.axis,d=b.horiz?"x":"y";b.variwide&& 14 | (this[d+"Orig"]=a.pos[d],this.postTranslate(a.pos,d,this.pos))});c(a.prototype,"getLabelPosition",function(a,b,c,f,g,r,k,t){var d=Array.prototype.slice.call(arguments,1),p=g?"x":"y";this.axis.variwide&&"number"===typeof this[p+"Orig"]&&(d[g?0:1]=this[p+"Orig"]);d=a.apply(this,d);this.axis.variwide&&this.axis.categories&&this.postTranslate(d,p,this.pos);return d})});h(a,"Series/Variwide/VariwideSeries.js",[a["Core/Series/SeriesRegistry.js"],a["Series/Variwide/VariwidePoint.js"],a["Core/Utilities.js"]], 15 | function(a,f,c){var e=this&&this.__extends||function(){var a=function(b,d){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var d in b)b.hasOwnProperty(d)&&(a[d]=b[d])};return a(b,d)};return function(b,d){function k(){this.constructor=b}a(b,d);b.prototype=null===d?Object.create(d):(k.prototype=d.prototype,new k)}}(),d=a.seriesTypes.column,b=c.extend,h=c.merge,q=c.pick;c=function(b){function c(){var a=null!==b&&b.apply(this,arguments)||this;a.data= 16 | void 0;a.options=void 0;a.points=void 0;a.relZ=void 0;a.totalZ=void 0;a.zData=void 0;return a}e(c,b);c.prototype.processData=function(b){this.totalZ=0;this.relZ=[];a.seriesTypes.column.prototype.processData.call(this,b);(this.xAxis.reversed?this.zData.slice().reverse():this.zData).forEach(function(a,b){this.relZ[b]=this.totalZ;this.totalZ+=a},this);this.xAxis.categories&&(this.xAxis.variwide=!0,this.xAxis.zData=this.zData)};c.prototype.postTranslate=function(a,b,d){var c=this.xAxis,l=this.relZ;a= 17 | c.reversed?l.length-a:a;var n=c.reversed?-1:1,m=c.toPixels(c.reversed?(c.dataMax||0)+c.pointRange:c.dataMin||0),f=c.toPixels(c.reversed?c.dataMin||0:(c.dataMax||0)+c.pointRange),k=Math.abs(f-m),e=this.totalZ;c=this.chart.inverted?f-(this.chart.plotTop-n*c.minPixelPadding):m-this.chart.plotLeft-n*c.minPixelPadding;m=a/l.length*k;f=(a+n)/l.length*k;var g=q(l[a],e)/e*k;l=q(l[a+n],e)/e*k;d&&(d.crosshairWidth=l-g);return c+g+(b-(c+m))*(l-g)/(f-m)};c.prototype.translate=function(){var b=this.options.crisp, 18 | c=this.xAxis;this.options.crisp=!1;a.seriesTypes.column.prototype.translate.call(this);this.options.crisp=b;var d=this.chart.inverted,f=this.borderWidth%2/2;this.points.forEach(function(a,b){if(c.variwide){var e=this.postTranslate(b,a.shapeArgs.x,a);b=this.postTranslate(b,a.shapeArgs.x+a.shapeArgs.width)}else e=a.plotX,b=c.translate(a.x+a.z,0,0,0,1);this.options.crisp&&(e=Math.round(e)-f,b=Math.round(b)-f);a.shapeArgs.x=e;a.shapeArgs.width=Math.max(b-e,1);a.plotX=(e+b)/2;d?a.tooltipPos[1]=c.len-a.shapeArgs.x- 19 | a.shapeArgs.width/2:a.tooltipPos[0]=a.shapeArgs.x+a.shapeArgs.width/2},this);this.options.stacking&&this.correctStackLabels()};c.prototype.correctStackLabels=function(){var a=this,b=a.options,c=a.yAxis,d,e,f,g;a.points.forEach(function(h){g=h.x;e=h.shapeArgs.width;(f=c.stacking.stacks[(a.negStacks&&h.y<(b.startFromThreshold?0:b.threshold)?"-":"")+a.stackKey])&&(d=f[g])&&!h.isNull&&d.setOffset(-(e/2)||0,e||0,void 0,void 0,h.plotX)})};c.defaultOptions=h(d.defaultOptions,{pointPadding:0,groupPadding:0}); 20 | return c}(d);b(c.prototype,{irregularWidths:!0,pointArrayMap:["y","z"],parallelArrays:["x","y","z"],pointClass:f});a.registerSeriesType("variwide",c);"";return c});h(a,"masters/modules/variwide.src.js",[],function(){})}); 21 | //# sourceMappingURL=variwide.js.map -------------------------------------------------------------------------------- /AAInfographics-Pro/AAJSFiles.bundle/AAModules/AAVector.js: -------------------------------------------------------------------------------- 1 | /* 2 | Highcharts JS v10.0.0 (2022-03-07) 3 | 4 | Vector plot series module 5 | 6 | (c) 2010-2021 Torstein Honsi 7 | 8 | License: www.highcharts.com/license 9 | */ 10 | (function(a){"object"===typeof module&&module.exports?(a["default"]=a,module.exports=a):"function"===typeof define&&define.amd?define("highcharts/modules/vector",["highcharts"],function(d){a(d);a.Highcharts=d;return a}):a("undefined"!==typeof Highcharts?Highcharts:void 0)})(function(a){function d(a,f,d,e){a.hasOwnProperty(f)||(a[f]=e.apply(null,d),"function"===typeof CustomEvent&&window.dispatchEvent(new CustomEvent("HighchartsModuleLoaded",{detail:{path:f,module:a[f]}})))}a=a?a._modules:{};d(a,"Series/Vector/VectorSeries.js", 11 | [a["Core/Animation/AnimationUtilities.js"],a["Core/Globals.js"],a["Core/Series/SeriesRegistry.js"],a["Core/Utilities.js"]],function(a,f,d,e){var k=this&&this.__extends||function(){var a=function(c,b){a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(b,a){b.__proto__=a}||function(b,a){for(var g in a)a.hasOwnProperty(g)&&(b[g]=a[g])};return a(c,b)};return function(c,b){function g(){this.constructor=c}a(c,b);c.prototype=null===b?Object.create(b):(g.prototype=b.prototype,new g)}}(),l= 12 | a.animObject,m=d.series,h=d.seriesTypes.scatter,n=e.arrayMax;a=e.extend;var p=e.merge,q=e.pick;e=function(a){function c(){var b=null!==a&&a.apply(this,arguments)||this;b.data=void 0;b.lengthMax=void 0;b.options=void 0;b.points=void 0;return b}k(c,a);c.prototype.animate=function(b){b?this.markerGroup.attr({opacity:.01}):this.markerGroup.animate({opacity:1},l(this.options.animation))};c.prototype.arrow=function(b){b=b.length/this.lengthMax*this.options.vectorLength/20;var a={start:10*b,center:0,end:-10* 13 | b}[this.options.rotationOrigin]||0;return[["M",0,7*b+a],["L",-1.5*b,7*b+a],["L",0,10*b+a],["L",1.5*b,7*b+a],["L",0,7*b+a],["L",0,-10*b+a]]};c.prototype.drawPoints=function(){var a=this.chart;this.points.forEach(function(b){var c=b.plotX,d=b.plotY;!1===this.options.clip||a.isInsidePlot(c,d,{inverted:a.inverted})?(b.graphic||(b.graphic=this.chart.renderer.path().add(this.markerGroup).addClass("highcharts-point highcharts-color-"+q(b.colorIndex,b.series.colorIndex))),b.graphic.attr({d:this.arrow(b), 14 | translateX:c,translateY:d,rotation:b.direction}),this.chart.styledMode||b.graphic.attr(this.pointAttribs(b))):b.graphic&&(b.graphic=b.graphic.destroy())},this)};c.prototype.pointAttribs=function(b,a){var c=this.options;b=b.color||this.color;var d=this.options.lineWidth;a&&(b=c.states[a].color||b,d=(c.states[a].lineWidth||d)+(c.states[a].lineWidthPlus||0));return{stroke:b,"stroke-width":d}};c.prototype.translate=function(){m.prototype.translate.call(this);this.lengthMax=n(this.lengthData)};c.defaultOptions= 15 | p(h.defaultOptions,{lineWidth:2,marker:null,rotationOrigin:"center",states:{hover:{lineWidthPlus:1}},tooltip:{pointFormat:"[{point.x}, {point.y}]
Length: {point.length}
Direction: {point.direction}\u00b0
"},vectorLength:20});return c}(h);a(e.prototype,{drawGraph:f.noop,getSymbol:f.noop,markerAttribs:f.noop,parallelArrays:["x","y","length","direction"],pointArrayMap:["y","length","direction"]});d.registerSeriesType("vector",e);"";return e});d(a,"masters/modules/vector.src.js", 16 | [],function(){})}); 17 | //# sourceMappingURL=vector.js.map -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsModel/AAAnimation.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AAAnimation.swift 3 | // AAInfographicsDemo 4 | // 5 | // Created by AnAn on 2019/8/31. 6 | // Copyright © 2019 An An. All rights reserved. 7 | //*************** ...... SOURCE CODE ...... *************** 8 | //***...................................................*** 9 | //*** https://github.com/AAChartModel/AAChartKit *** 10 | //*** https://github.com/AAChartModel/AAChartKit-Swift *** 11 | //***...................................................*** 12 | //*************** ...... SOURCE CODE ...... *************** 13 | 14 | /* 15 | 16 | * ------------------------------------------------------------------------------- 17 | * 18 | * 🌕 🌖 🌗 🌘 ❀❀❀ WARM TIPS!!! ❀❀❀ 🌑 🌒 🌓 🌔 19 | * 20 | * Please contact me on GitHub,if there are any problems encountered in use. 21 | * GitHub Issues : https://github.com/AAChartModel/AAChartKit-Swift/issues 22 | * ------------------------------------------------------------------------------- 23 | * And if you want to contribute for this project, please contact me as well 24 | * GitHub : https://github.com/AAChartModel 25 | * StackOverflow : https://stackoverflow.com/users/12302132/codeforu 26 | * JianShu : https://www.jianshu.com/u/f1e6753d4254 27 | * SegmentFault : https://segmentfault.com/u/huanghunbieguan 28 | * 29 | * ------------------------------------------------------------------------------- 30 | 31 | */ 32 | 33 | import Foundation 34 | 35 | public class AAAnimation: AAObject { 36 | public var duration: Int? 37 | public var easing: Int? 38 | 39 | @discardableResult 40 | public func duration(_ prop: Int?) -> AAAnimation { 41 | duration = prop 42 | return self 43 | } 44 | 45 | @discardableResult 46 | public func easing(_ prop: AAChartAnimationType?) -> AAAnimation { 47 | easing = prop?.rawValue 48 | return self 49 | } 50 | 51 | public override init() { 52 | 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsModel/AABoxplot.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AABoxplot.swift 3 | // AAInfographicsDemo 4 | // 5 | // Created by AnAn on 2022/8/25. 6 | // Copyright © 2021 An An. All rights reserved. 7 | //*************** ...... SOURCE CODE ...... *************** 8 | //***...................................................*** 9 | //*** https://github.com/AAChartModel/AAChartKit *** 10 | //*** https://github.com/AAChartModel/AAChartKit-Swift *** 11 | //***...................................................*** 12 | //*************** ...... SOURCE CODE ...... *************** 13 | 14 | /* 15 | 16 | * ------------------------------------------------------------------------------- 17 | * 18 | * 🌕 🌖 🌗 🌘 ❀❀❀ WARM TIPS!!! ❀❀❀ 🌑 🌒 🌓 🌔 19 | * 20 | * Please contact me on GitHub,if there are any problems encountered in use. 21 | * GitHub Issues : https://github.com/AAChartModel/AAChartKit-Swift/issues 22 | * ------------------------------------------------------------------------------- 23 | * And if you want to contribute for this project, please contact me as well 24 | * GitHub : https://github.com/AAChartModel 25 | * StackOverflow : https://stackoverflow.com/users/12302132/codeforu 26 | * JianShu : https://www.jianshu.com/u/f1e6753d4254 27 | * SegmentFault : https://segmentfault.com/u/huanghunbieguan 28 | * 29 | * ------------------------------------------------------------------------------- 30 | 31 | */ 32 | 33 | import Foundation 34 | 35 | public class AABoxplot: AAObject { 36 | public var boxDashStyle: String? 37 | public var fillColor: Any? 38 | public var lineWidth: Float? 39 | public var medianColor: String? 40 | public var medianDashStyle: String? 41 | public var medianWidth: Float? 42 | public var stemColor: String? 43 | public var stemDashStyle: String? 44 | public var stemWidth: Float? 45 | public var whiskerColor: String? 46 | public var whiskerDashStyle: String? 47 | public var whiskerLength: String? 48 | public var whiskerWidth: Float? 49 | 50 | @discardableResult 51 | public func boxDashStyle(_ prop: AAChartLineDashStyleType?) -> AABoxplot { 52 | boxDashStyle = prop?.rawValue 53 | return self 54 | } 55 | 56 | @discardableResult 57 | public func fillColor(_ prop: Any?) -> AABoxplot { 58 | fillColor = prop 59 | return self 60 | } 61 | 62 | @discardableResult 63 | public func lineWidth(_ prop: Float?) -> AABoxplot { 64 | lineWidth = prop 65 | return self 66 | } 67 | 68 | @discardableResult 69 | public func medianColor(_ prop: String?) -> AABoxplot { 70 | medianColor = prop 71 | return self 72 | } 73 | 74 | @discardableResult 75 | public func medianDashStyle(_ prop: AAChartLineDashStyleType?) -> AABoxplot { 76 | medianDashStyle = prop?.rawValue 77 | return self 78 | } 79 | 80 | @discardableResult 81 | public func medianWidth(_ prop: Float?) -> AABoxplot { 82 | medianWidth = prop 83 | return self 84 | } 85 | 86 | @discardableResult 87 | public func stemColor(_ prop: String?) -> AABoxplot { 88 | stemColor = prop 89 | return self 90 | } 91 | 92 | @discardableResult 93 | public func stemDashStyle(_ prop: AAChartLineDashStyleType?) -> AABoxplot { 94 | stemDashStyle = prop?.rawValue 95 | return self 96 | } 97 | 98 | @discardableResult 99 | public func stemWidth(_ prop: Float?) -> AABoxplot { 100 | stemWidth = prop 101 | return self 102 | } 103 | 104 | @discardableResult 105 | public func whiskerColor(_ prop: String?) -> AABoxplot { 106 | whiskerColor = prop 107 | return self 108 | } 109 | 110 | @discardableResult 111 | public func whiskerDashStyle(_ prop: AAChartLineDashStyleType?) -> AABoxplot { 112 | whiskerDashStyle = prop?.rawValue 113 | return self 114 | } 115 | 116 | @discardableResult 117 | public func whiskerLength(_ prop: String?) -> AABoxplot { 118 | whiskerLength = prop 119 | return self 120 | } 121 | 122 | @discardableResult 123 | public func whiskerWidth(_ prop: Float?) -> AABoxplot { 124 | whiskerWidth = prop 125 | return self 126 | } 127 | 128 | public override init() { 129 | 130 | } 131 | 132 | } 133 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsModel/AACredits.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AACredits.swift 3 | // AAInfographicsDemo 4 | // 5 | // Created by AnAn on 2020/7/17. 6 | // Copyright © 2020 An An. All rights reserved. 7 | //*************** ...... SOURCE CODE ...... *************** 8 | //***...................................................*** 9 | //*** https://github.com/AAChartModel/AAChartKit *** 10 | //*** https://github.com/AAChartModel/AAChartKit-Swift *** 11 | //***...................................................*** 12 | //*************** ...... SOURCE CODE ...... *************** 13 | 14 | /* 15 | 16 | * ------------------------------------------------------------------------------- 17 | * 18 | * 🌕 🌖 🌗 🌘 ❀❀❀ WARM TIPS!!! ❀❀❀ 🌑 🌒 🌓 🌔 19 | * 20 | * Please contact me on GitHub,if there are any problems encountered in use. 21 | * GitHub Issues : https://github.com/AAChartModel/AAChartKit-Swift/issues 22 | * ------------------------------------------------------------------------------- 23 | * And if you want to contribute for this project, please contact me as well 24 | * GitHub : https://github.com/AAChartModel 25 | * StackOverflow : https://stackoverflow.com/users/12302132/codeforu 26 | * JianShu : https://www.jianshu.com/u/f1e6753d4254 27 | * SegmentFault : https://segmentfault.com/u/huanghunbieguan 28 | * 29 | * ------------------------------------------------------------------------------- 30 | 31 | */ 32 | 33 | 34 | public class AACredits: AAObject { 35 | public var enabled: Bool? 36 | public var href: String? 37 | public var position: AAPosition? 38 | public var style: AAStyle? 39 | public var text: String? 40 | 41 | @discardableResult 42 | public func enabled(_ prop: Bool?) -> AACredits { 43 | enabled = prop 44 | return self 45 | } 46 | 47 | @discardableResult 48 | public func href(_ prop: String?) -> AACredits { 49 | href = prop 50 | return self 51 | } 52 | 53 | @discardableResult 54 | public func position(_ prop: AAPosition?) -> AACredits { 55 | position = prop 56 | return self 57 | } 58 | 59 | @discardableResult 60 | public func style(_ prop: AAStyle?) -> AACredits { 61 | style = prop 62 | return self 63 | } 64 | 65 | @discardableResult 66 | public func text(_ prop: String?) -> AACredits { 67 | text = prop 68 | return self 69 | } 70 | 71 | public override init() { 72 | 73 | } 74 | } 75 | 76 | public class AAPosition: AAObject { 77 | public var align: String? 78 | public var verticalAlign: String? 79 | public var x: Float? 80 | public var y: Float? 81 | 82 | @discardableResult 83 | public func align(_ prop: AAChartAlignType?) -> AAPosition { 84 | align = prop?.rawValue 85 | return self 86 | } 87 | 88 | @discardableResult 89 | public func verticalAlign(_ prop: AAChartVerticalAlignType?) -> AAPosition { 90 | verticalAlign = prop?.rawValue 91 | return self 92 | } 93 | 94 | @discardableResult 95 | public func x(_ prop: Float?) -> AAPosition { 96 | x = prop 97 | return self 98 | } 99 | 100 | @discardableResult 101 | public func y(_ prop: Float?) -> AAPosition { 102 | y = prop 103 | return self 104 | } 105 | 106 | public override init() { 107 | 108 | } 109 | } 110 | 111 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsModel/AACrosshair.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AACrosshair.swift 3 | // AAInfographicsDemo 4 | // 5 | // Created by AnAn on 2019/8/31. 6 | // Copyright © 2019 An An. All rights reserved. 7 | //*************** ...... SOURCE CODE ...... *************** 8 | //***...................................................*** 9 | //*** https://github.com/AAChartModel/AAChartKit *** 10 | //*** https://github.com/AAChartModel/AAChartKit-Swift *** 11 | //***...................................................*** 12 | //*************** ...... SOURCE CODE ...... *************** 13 | 14 | /* 15 | 16 | * ------------------------------------------------------------------------------- 17 | * 18 | * 🌕 🌖 🌗 🌘 ❀❀❀ WARM TIPS!!! ❀❀❀ 🌑 🌒 🌓 🌔 19 | * 20 | * Please contact me on GitHub,if there are any problems encountered in use. 21 | * GitHub Issues : https://github.com/AAChartModel/AAChartKit-Swift/issues 22 | * ------------------------------------------------------------------------------- 23 | * And if you want to contribute for this project, please contact me as well 24 | * GitHub : https://github.com/AAChartModel 25 | * StackOverflow : https://stackoverflow.com/users/12302132/codeforu 26 | * JianShu : https://www.jianshu.com/u/f1e6753d4254 27 | * SegmentFault : https://segmentfault.com/u/huanghunbieguan 28 | * 29 | * ------------------------------------------------------------------------------- 30 | 31 | */ 32 | 33 | import Foundation 34 | 35 | public class AACrosshair: AAObject { 36 | public var dashStyle: String? 37 | public var color: String? 38 | public var width: Float? 39 | public var zIndex: Int? 40 | 41 | @discardableResult 42 | public func dashStyle(_ prop: AAChartLineDashStyleType) -> AACrosshair { 43 | dashStyle = prop.rawValue 44 | return self 45 | } 46 | 47 | @discardableResult 48 | public func color(_ prop: String) -> AACrosshair { 49 | color = prop 50 | return self 51 | } 52 | 53 | @discardableResult 54 | public func width(_ prop: Float) -> AACrosshair { 55 | width = prop 56 | return self 57 | } 58 | 59 | @discardableResult 60 | public func zIndex(_ prop: Int) -> AACrosshair { 61 | zIndex = prop 62 | return self 63 | } 64 | 65 | public override init() { 66 | 67 | } 68 | } 69 | 70 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsModel/AALabel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AALabel.swift 3 | // AAInfographicsDemo 4 | // 5 | // Created by AnAn on 2019/7/17. 6 | // Copyright © 2019 An An. All rights reserved. 7 | //*************** ...... SOURCE CODE ...... *************** 8 | //***...................................................*** 9 | //*** https://github.com/AAChartModel/AAChartKit *** 10 | //*** https://github.com/AAChartModel/AAChartKit-Swift *** 11 | //***...................................................*** 12 | //*************** ...... SOURCE CODE ...... *************** 13 | 14 | /* 15 | 16 | * ------------------------------------------------------------------------------- 17 | * 18 | * 🌕 🌖 🌗 🌘 ❀❀❀ WARM TIPS!!! ❀❀❀ 🌑 🌒 🌓 🌔 19 | * 20 | * Please contact me on GitHub,if there are any problems encountered in use. 21 | * GitHub Issues : https://github.com/AAChartModel/AAChartKit-Swift/issues 22 | * ------------------------------------------------------------------------------- 23 | * And if you want to contribute for this project, please contact me as well 24 | * GitHub : https://github.com/AAChartModel 25 | * StackOverflow : https://stackoverflow.com/users/12302132/codeforu 26 | * JianShu : https://www.jianshu.com/u/f1e6753d4254 27 | * SegmentFault : https://segmentfault.com/u/huanghunbieguan 28 | * 29 | * ------------------------------------------------------------------------------- 30 | 31 | */ 32 | import Foundation 33 | 34 | public class AALabel: AAObject { 35 | public var align: String? // Alignment of axis labels. Available values are "left", "center", and "right". The default value is intelligently judged based on the position of the coordinate axis (position in the chart), that is, the rotation angle of the label. 36 | public var rotation: Float? // The rotation angle of the axis label. The default is: 0. 37 | public var text: String? // text 38 | public var textAlign: String? // Text alignment 39 | public var useHTML: Bool? // Enable HTML rendering 40 | public var verticalAlign: String? // Vertical alignment 41 | public var style: AAStyle? // CSS style for axis labels 42 | public var x: Float? // The horizontal offset from the axis axis tick marks. The default is: 0. 43 | public var y: Float? // The vertical flat offset from the axis axis tick marks. The default is: null. 44 | 45 | @discardableResult 46 | public func align(_ prop: AAChartAlignType) -> AALabel { 47 | align = prop.rawValue 48 | return self 49 | } 50 | 51 | @discardableResult 52 | public func rotation(_ prop: Float) -> AALabel { 53 | rotation = prop 54 | return self 55 | } 56 | 57 | @discardableResult 58 | public func text(_ prop: String) -> AALabel { 59 | text = prop 60 | return self 61 | } 62 | 63 | @discardableResult 64 | public func textAlign(_ prop: String) -> AALabel { 65 | textAlign = prop 66 | return self 67 | } 68 | 69 | @discardableResult 70 | public func useHTML(_ prop: Bool) -> AALabel { 71 | useHTML = prop 72 | return self 73 | } 74 | 75 | @discardableResult 76 | public func verticalAlign(_ prop: String) -> AALabel { 77 | verticalAlign = prop 78 | return self 79 | } 80 | 81 | @discardableResult 82 | public func style(_ prop: AAStyle) -> AALabel { 83 | style = prop 84 | return self 85 | } 86 | 87 | @discardableResult 88 | public func x(_ prop: Float) -> AALabel { 89 | x = prop 90 | return self 91 | } 92 | 93 | @discardableResult 94 | public func y(_ prop: Float) -> AALabel { 95 | y = prop 96 | return self 97 | } 98 | 99 | public override init() { 100 | 101 | } 102 | 103 | } 104 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsModel/AALang.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AALang.swift 3 | // AAInfographicsDemo 4 | // 5 | // Created by AnAn on 2020/7/17. 6 | // Copyright © 2020 An An. All rights reserved. 7 | //*************** ...... SOURCE CODE ...... *************** 8 | //***...................................................*** 9 | //*** https://github.com/AAChartModel/AAChartKit *** 10 | //*** https://github.com/AAChartModel/AAChartKit-Swift *** 11 | //***...................................................*** 12 | //*************** ...... SOURCE CODE ...... *************** 13 | 14 | /* 15 | 16 | * ------------------------------------------------------------------------------- 17 | * 18 | * 🌕 🌖 🌗 🌘 ❀❀❀ WARM TIPS!!! ❀❀❀ 🌑 🌒 🌓 🌔 19 | * 20 | * Please contact me on GitHub,if there are any problems encountered in use. 21 | * GitHub Issues : https://github.com/AAChartModel/AAChartKit-Swift/issues 22 | * ------------------------------------------------------------------------------- 23 | * And if you want to contribute for this project, please contact me as well 24 | * GitHub : https://github.com/AAChartModel 25 | * StackOverflow : https://stackoverflow.com/users/12302132/codeforu 26 | * JianShu : https://www.jianshu.com/u/f1e6753d4254 27 | * SegmentFault : https://segmentfault.com/u/huanghunbieguan 28 | * 29 | * ------------------------------------------------------------------------------- 30 | 31 | */ 32 | 33 | 34 | public class AALang: AAObject { 35 | public var noData: String? 36 | public var numericSymbolMagnitude: Int? 37 | public var numericSymbols: [String]? 38 | public var resetZoom: String? 39 | public var thousandsSep: String? 40 | 41 | @discardableResult 42 | public func noData(_ prop: String?) -> AALang { 43 | noData = prop 44 | return self 45 | } 46 | 47 | @discardableResult 48 | public func numericSymbolMagnitude(_ prop: Int?) -> AALang { 49 | numericSymbolMagnitude = prop 50 | return self 51 | } 52 | 53 | @discardableResult 54 | public func numericSymbols(_ prop: [String]?) -> AALang { 55 | numericSymbols = prop 56 | return self 57 | } 58 | 59 | @discardableResult 60 | public func resetZoom(_ prop: String?) -> AALang { 61 | resetZoom = prop 62 | return self 63 | } 64 | 65 | @discardableResult 66 | public func thousandsSep(_ prop: String?) -> AALang { 67 | thousandsSep = prop 68 | return self 69 | } 70 | 71 | public override init() { 72 | 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsModel/AAMarker.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AAMarker.swift 3 | // AAInfographicsDemo 4 | // 5 | // Created by AnAn on 2019/8/31. 6 | // Copyright © 2019 An An. All rights reserved. 7 | //*************** ...... SOURCE CODE ...... *************** 8 | //***...................................................*** 9 | //*** https://github.com/AAChartModel/AAChartKit *** 10 | //*** https://github.com/AAChartModel/AAChartKit-Swift *** 11 | //***...................................................*** 12 | //*************** ...... SOURCE CODE ...... *************** 13 | 14 | /* 15 | 16 | * ------------------------------------------------------------------------------- 17 | * 18 | * 🌕 🌖 🌗 🌘 ❀❀❀ WARM TIPS!!! ❀❀❀ 🌑 🌒 🌓 🌔 19 | * 20 | * Please contact me on GitHub,if there are any problems encountered in use. 21 | * GitHub Issues : https://github.com/AAChartModel/AAChartKit-Swift/issues 22 | * ------------------------------------------------------------------------------- 23 | * And if you want to contribute for this project, please contact me as well 24 | * GitHub : https://github.com/AAChartModel 25 | * StackOverflow : https://stackoverflow.com/users/12302132/codeforu 26 | * JianShu : https://www.jianshu.com/u/f1e6753d4254 27 | * SegmentFault : https://segmentfault.com/u/huanghunbieguan 28 | * 29 | * ------------------------------------------------------------------------------- 30 | 31 | */ 32 | 33 | import Foundation 34 | 35 | public class AAMarker: AAObject { 36 | public var enabled: Bool? 37 | public var radius: Float? 38 | public var symbol: String? 39 | public var fillColor: String? 40 | public var fillOpacity: Float? 41 | public var lineWidth: Float? 42 | public var lineColor: Any? 43 | public var states: AAMarkerStates? 44 | 45 | @discardableResult 46 | public func enabled(_ prop: Bool?) -> AAMarker { 47 | enabled = prop 48 | return self 49 | } 50 | 51 | @discardableResult 52 | public func radius(_ prop: Float?) -> AAMarker { 53 | radius = prop 54 | return self 55 | } 56 | 57 | @discardableResult 58 | public func symbol(_ prop: String?) -> AAMarker { 59 | symbol = prop 60 | return self 61 | } 62 | 63 | @discardableResult 64 | public func fillColor(_ prop: String?) -> AAMarker { 65 | fillColor = prop 66 | return self 67 | } 68 | 69 | @discardableResult 70 | public func fillOpacity(_ prop: Float?) -> AAMarker { 71 | fillOpacity = prop 72 | return self 73 | } 74 | 75 | @discardableResult 76 | public func lineWidth(_ prop: Float?) -> AAMarker { 77 | lineWidth = prop 78 | return self 79 | } 80 | 81 | @discardableResult 82 | public func lineColor(_ prop: Any?) -> AAMarker { 83 | lineColor = prop 84 | return self 85 | } 86 | 87 | @discardableResult 88 | public func states(_ prop: AAMarkerStates?) -> AAMarker { 89 | states = prop 90 | return self 91 | } 92 | 93 | public override init() { 94 | enabled = true 95 | } 96 | } 97 | 98 | public class AAMarkerStates: AAObject { 99 | public var hover: AAMarkerHover? 100 | 101 | @discardableResult 102 | public func hover(_ prop: AAMarkerHover) -> AAMarkerStates { 103 | hover = prop 104 | return self 105 | } 106 | 107 | public override init() { 108 | 109 | } 110 | } 111 | 112 | public class AAMarkerHover: AAObject { 113 | public var enabled: Bool? 114 | public var fillColor: String? 115 | public var lineColor: String? 116 | public var lineWidth: Float? 117 | public var radius: Float? 118 | 119 | @discardableResult 120 | public func enabled(_ prop: Bool) -> AAMarkerHover { 121 | enabled = prop 122 | return self 123 | } 124 | 125 | @discardableResult 126 | public func fillColor(_ prop: String) -> AAMarkerHover { 127 | fillColor = prop 128 | return self 129 | } 130 | 131 | @discardableResult 132 | public func lineColor(_ prop: String) -> AAMarkerHover { 133 | lineColor = prop 134 | return self 135 | } 136 | 137 | @discardableResult 138 | public func lineWidth(_ prop: Float) -> AAMarkerHover { 139 | lineWidth = prop 140 | return self 141 | } 142 | 143 | @discardableResult 144 | public func radius(_ prop: Float) -> AAMarkerHover { 145 | radius = prop 146 | return self 147 | } 148 | 149 | public override init() { 150 | 151 | } 152 | } 153 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsModel/AAPane.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AAPane.swift 3 | // AAInfographicsDemo 4 | // 5 | // Created by AnAn on 2019/9/29. 6 | // Copyright © 2019 An An. All rights reserved. 7 | //*************** ...... SOURCE CODE ...... *************** 8 | //***...................................................*** 9 | //*** https://github.com/AAChartModel/AAChartKit *** 10 | //*** https://github.com/AAChartModel/AAChartKit-Swift *** 11 | //***...................................................*** 12 | //*************** ...... SOURCE CODE ...... *************** 13 | 14 | /* 15 | 16 | * ------------------------------------------------------------------------------- 17 | * 18 | * 🌕 🌖 🌗 🌘 ❀❀❀ WARM TIPS!!! ❀❀❀ 🌑 🌒 🌓 🌔 19 | * 20 | * Please contact me on GitHub,if there are any problems encountered in use. 21 | * GitHub Issues : https://github.com/AAChartModel/AAChartKit-Swift/issues 22 | * ------------------------------------------------------------------------------- 23 | * And if you want to contribute for this project, please contact me as well 24 | * GitHub : https://github.com/AAChartModel 25 | * StackOverflow : https://stackoverflow.com/users/12302132/codeforu 26 | * JianShu : https://www.jianshu.com/u/f1e6753d4254 27 | * SegmentFault : https://segmentfault.com/u/huanghunbieguan 28 | * 29 | * ------------------------------------------------------------------------------- 30 | 31 | */ 32 | 33 | import Foundation 34 | 35 | public class AAPane: AAObject { 36 | public var background: [AABackgroundElement]? 37 | public var center: [String]? 38 | public var endAngle: Float? 39 | public var size: Any? 40 | public var startAngle: Float? 41 | 42 | 43 | @discardableResult 44 | public func background(_ prop: [AABackgroundElement]) -> AAPane { 45 | background = prop 46 | return self 47 | } 48 | 49 | @discardableResult 50 | public func center(_ prop: [String]) -> AAPane { 51 | center = prop 52 | return self 53 | } 54 | 55 | @discardableResult 56 | public func endAngle(_ prop: Float) -> AAPane { 57 | endAngle = prop 58 | return self 59 | } 60 | 61 | @discardableResult 62 | public func size(_ prop: Any) -> AAPane { 63 | size = prop 64 | return self 65 | } 66 | 67 | @discardableResult 68 | public func startAngle(_ prop: Float) -> AAPane { 69 | startAngle = prop 70 | return self 71 | } 72 | 73 | public override init() { 74 | 75 | } 76 | } 77 | 78 | public class AABackgroundElement: AAObject { 79 | public var backgroundColor: Any? //背景颜色 80 | public var borderColor: String? //边框颜色 81 | public var borderWidth: Float? //边框宽度 82 | public var className: String?//类名 83 | public var innerRadius: Any?//内半径 84 | public var outerRadius: Any?//外半径 85 | public var shape: String? 86 | 87 | @discardableResult 88 | public func backgroundColor(_ prop: Any) -> AABackgroundElement { 89 | backgroundColor = prop 90 | return self 91 | } 92 | 93 | @discardableResult 94 | public func borderColor(_ prop: String) -> AABackgroundElement { 95 | borderColor = prop 96 | return self 97 | } 98 | 99 | @discardableResult 100 | public func borderWidth(_ prop: Float) -> AABackgroundElement { 101 | borderWidth = prop 102 | return self 103 | } 104 | 105 | @discardableResult 106 | public func className(_ prop: String) -> AABackgroundElement { 107 | className = prop 108 | return self 109 | } 110 | 111 | @discardableResult 112 | public func innerRadius(_ prop: Any) -> AABackgroundElement { 113 | innerRadius = prop 114 | return self 115 | } 116 | 117 | @discardableResult 118 | public func outerRadius(_ prop: Any) -> AABackgroundElement { 119 | outerRadius = prop 120 | return self 121 | } 122 | 123 | @discardableResult 124 | public func shape(_ prop: String) -> AABackgroundElement { 125 | shape = prop 126 | return self 127 | } 128 | 129 | public override init() { 130 | 131 | } 132 | } 133 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsModel/AAPlotBandsElement.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AAPlotBandsElement.swift 3 | // AAInfographicsDemo 4 | // 5 | // Created by AnAn on 2019/4/14. 6 | // Copyright © 2019 An An. All rights reserved. 7 | //*************** ...... SOURCE CODE ...... *************** 8 | //***...................................................*** 9 | //*** https://github.com/AAChartModel/AAChartKit *** 10 | //*** https://github.com/AAChartModel/AAChartKit-Swift *** 11 | //***...................................................*** 12 | //*************** ...... SOURCE CODE ...... *************** 13 | 14 | /* 15 | 16 | * ------------------------------------------------------------------------------- 17 | * 18 | * 🌕 🌖 🌗 🌘 ❀❀❀ WARM TIPS!!! ❀❀❀ 🌑 🌒 🌓 🌔 19 | * 20 | * Please contact me on GitHub,if there are any problems encountered in use. 21 | * GitHub Issues : https://github.com/AAChartModel/AAChartKit-Swift/issues 22 | * ------------------------------------------------------------------------------- 23 | * And if you want to contribute for this project, please contact me as well 24 | * GitHub : https://github.com/AAChartModel 25 | * StackOverflow : https://stackoverflow.com/users/12302132/codeforu 26 | * JianShu : https://www.jianshu.com/u/f1e6753d4254 27 | * SegmentFault : https://segmentfault.com/u/huanghunbieguan 28 | * 29 | * ------------------------------------------------------------------------------- 30 | 31 | */ 32 | 33 | import Foundation 34 | 35 | public class AAPlotBandsElement: AAObject { 36 | public var from: Double? 37 | public var to: Double? 38 | public var color: Any? 39 | public var borderColor: String? 40 | public var borderWidth: Float? 41 | public var className: String? 42 | public var label: AALabel? 43 | public var zIndex: Int? 44 | public var outerRadius: String? 45 | public var thickness: String? 46 | 47 | 48 | @discardableResult 49 | public func from(_ prop: Double) -> AAPlotBandsElement { 50 | from = prop 51 | return self 52 | } 53 | 54 | @discardableResult 55 | public func to(_ prop: Double) -> AAPlotBandsElement { 56 | to = prop 57 | return self 58 | } 59 | 60 | @discardableResult 61 | public func color(_ prop: Any) -> AAPlotBandsElement { 62 | color = prop 63 | return self 64 | } 65 | 66 | @discardableResult 67 | public func borderColor(_ prop: String) -> AAPlotBandsElement { 68 | borderColor = prop 69 | return self 70 | } 71 | 72 | @discardableResult 73 | public func borderWidth(_ prop: Float) -> AAPlotBandsElement { 74 | borderWidth = prop 75 | return self 76 | } 77 | 78 | @discardableResult 79 | public func className(_ prop: String) -> AAPlotBandsElement { 80 | className = prop 81 | return self 82 | } 83 | 84 | @discardableResult 85 | public func label(_ prop: AALabel) -> AAPlotBandsElement { 86 | label = prop 87 | return self 88 | } 89 | 90 | @discardableResult 91 | public func zIndex(_ prop: Int) -> AAPlotBandsElement { 92 | zIndex = prop 93 | return self 94 | } 95 | 96 | @discardableResult 97 | public func outerRadius(_ prop: String) -> AAPlotBandsElement { 98 | outerRadius = prop 99 | return self 100 | } 101 | 102 | @discardableResult 103 | public func thickness(_ prop: String) -> AAPlotBandsElement { 104 | thickness = prop 105 | return self 106 | } 107 | 108 | public override init() { 109 | 110 | } 111 | 112 | } 113 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsModel/AAPlotLinesElement.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AAPlotLinesElement.swift 3 | // AAInfographicsDemo 4 | // 5 | // Created by AnAn on 2019/4/14. 6 | // Copyright © 2019 An An. All rights reserved. 7 | //*************** ...... SOURCE CODE ...... *************** 8 | //***...................................................*** 9 | //*** https://github.com/AAChartModel/AAChartKit *** 10 | //*** https://github.com/AAChartModel/AAChartKit-Swift *** 11 | //***...................................................*** 12 | //*************** ...... SOURCE CODE ...... *************** 13 | 14 | /* 15 | 16 | * ------------------------------------------------------------------------------- 17 | * 18 | * 🌕 🌖 🌗 🌘 ❀❀❀ WARM TIPS!!! ❀❀❀ 🌑 🌒 🌓 🌔 19 | * 20 | * Please contact me on GitHub,if there are any problems encountered in use. 21 | * GitHub Issues : https://github.com/AAChartModel/AAChartKit-Swift/issues 22 | * ------------------------------------------------------------------------------- 23 | * And if you want to contribute for this project, please contact me as well 24 | * GitHub : https://github.com/AAChartModel 25 | * StackOverflow : https://stackoverflow.com/users/12302132/codeforu 26 | * JianShu : https://www.jianshu.com/u/f1e6753d4254 27 | * SegmentFault : https://segmentfault.com/u/huanghunbieguan 28 | * 29 | * ------------------------------------------------------------------------------- 30 | 31 | */ 32 | 33 | import Foundation 34 | 35 | public class AAPlotLinesElement: AAObject { 36 | public var color: Any? 37 | public var dashStyle: String? 38 | public var width: Float? 39 | public var value: Double? 40 | public var zIndex: Int? 41 | public var label: AALabel? 42 | 43 | @discardableResult 44 | public func color(_ prop: Any) -> AAPlotLinesElement { 45 | color = prop 46 | return self 47 | } 48 | 49 | @discardableResult 50 | public func dashStyle(_ prop: AAChartLineDashStyleType) -> AAPlotLinesElement { 51 | dashStyle = prop.rawValue 52 | return self 53 | } 54 | 55 | @discardableResult 56 | public func width(_ prop: Float) -> AAPlotLinesElement { 57 | width = prop 58 | return self 59 | } 60 | 61 | @discardableResult 62 | public func value(_ prop: Double) -> AAPlotLinesElement { 63 | value = prop 64 | return self 65 | } 66 | 67 | @discardableResult 68 | public func zIndex(_ prop: Int) -> AAPlotLinesElement { 69 | zIndex = prop 70 | return self 71 | } 72 | 73 | @discardableResult 74 | public func label(_ prop: AALabel) -> AAPlotLinesElement { 75 | label = prop 76 | return self 77 | } 78 | 79 | public override init() { 80 | 81 | } 82 | 83 | } 84 | 85 | 86 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsModel/AAScrollablePlotArea.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AAScrollablePlotArea.swift 3 | // AAInfographicsDemo 4 | // 5 | // Created by Alfred Woo on 2020/03/20. 6 | // Copyright © 2020 An An. All rights reserved. 7 | //*************** ...... SOURCE CODE ...... *************** 8 | //***...................................................*** 9 | //*** https://github.com/AAChartModel/AAChartKit *** 10 | //*** https://github.com/AAChartModel/AAChartKit-Swift *** 11 | //***...................................................*** 12 | //*************** ...... SOURCE CODE ...... *************** 13 | 14 | /* 15 | 16 | * ------------------------------------------------------------------------------- 17 | * 18 | * 🌕 🌖 🌗 🌘 ❀❀❀ WARM TIPS!!! ❀❀❀ 🌑 🌒 🌓 🌔 19 | * 20 | * Please contact me on GitHub,if there are any problems encountered in use. 21 | * GitHub Issues : https://github.com/AAChartModel/AAChartKit-Swift/issues 22 | * ------------------------------------------------------------------------------- 23 | * And if you want to contribute for this project, please contact me as well 24 | * GitHub : https://github.com/AAChartModel 25 | * StackOverflow : https://stackoverflow.com/users/12302132/codeforu 26 | * JianShu : https://www.jianshu.com/u/f1e6753d4254 27 | * SegmentFault : https://segmentfault.com/u/huanghunbieguan 28 | * 29 | * ------------------------------------------------------------------------------- 30 | 31 | */ 32 | 33 | import Foundation 34 | 35 | //Refer to online API document: https://api.highcharts.com/highcharts/chart.scrollablePlotArea 36 | public class AAScrollablePlotArea: AAObject { 37 | public var minHeight: Int? 38 | public var minWidth: Int? 39 | public var opacity: Float? 40 | public var scrollPositionX: Float? 41 | public var scrollPositionY: Float? 42 | 43 | @discardableResult 44 | public func minHeight(_ prop: Int) -> AAScrollablePlotArea { 45 | minHeight = prop 46 | return self 47 | } 48 | 49 | @discardableResult 50 | public func minWidth(_ prop: Int) -> AAScrollablePlotArea { 51 | minWidth = prop 52 | return self 53 | } 54 | 55 | @discardableResult 56 | public func opacity(_ prop: Float) -> AAScrollablePlotArea { 57 | opacity = prop 58 | return self 59 | } 60 | 61 | @discardableResult 62 | public func scrollPositionX(_ prop: Float) -> AAScrollablePlotArea { 63 | scrollPositionX = prop 64 | return self 65 | } 66 | 67 | @discardableResult 68 | public func scrollPositionY(_ prop: Float) -> AAScrollablePlotArea { 69 | scrollPositionY = prop 70 | return self 71 | } 72 | 73 | public override init() { 74 | 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsModel/AASubtitle.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AASubtitle.swift 3 | // AAInfographicsDemo 4 | // 5 | // Created by AnAn on 2019/8/31. 6 | // Copyright © 2019 An An. All rights reserved. 7 | //*************** ...... SOURCE CODE ...... *************** 8 | //***...................................................*** 9 | //*** https://github.com/AAChartModel/AAChartKit *** 10 | //*** https://github.com/AAChartModel/AAChartKit-Swift *** 11 | //***...................................................*** 12 | //*************** ...... SOURCE CODE ...... *************** 13 | 14 | /* 15 | 16 | * ------------------------------------------------------------------------------- 17 | * 18 | * 🌕 🌖 🌗 🌘 ❀❀❀ WARM TIPS!!! ❀❀❀ 🌑 🌒 🌓 🌔 19 | * 20 | * Please contact me on GitHub,if there are any problems encountered in use. 21 | * GitHub Issues : https://github.com/AAChartModel/AAChartKit-Swift/issues 22 | * ------------------------------------------------------------------------------- 23 | * And if you want to contribute for this project, please contact me as well 24 | * GitHub : https://github.com/AAChartModel 25 | * StackOverflow : https://stackoverflow.com/users/12302132/codeforu 26 | * JianShu : https://www.jianshu.com/u/f1e6753d4254 27 | * SegmentFault : https://segmentfault.com/u/huanghunbieguan 28 | * 29 | * ------------------------------------------------------------------------------- 30 | 31 | */ 32 | 33 | import Foundation 34 | 35 | public class AASubtitle: AAObject { 36 | public var text: String? 37 | public var style: AAStyle? 38 | public var align: String? 39 | public var verticalAlign: String? 40 | public var x: Float? 41 | public var y: Float? 42 | public var userHTML: Bool? 43 | 44 | @discardableResult 45 | public func text(_ prop: String?) -> AASubtitle { 46 | text = prop 47 | return self 48 | } 49 | 50 | @discardableResult 51 | public func style(_ prop: AAStyle?) -> AASubtitle { 52 | style = prop 53 | return self 54 | } 55 | 56 | @discardableResult 57 | public func align(_ prop: AAChartAlignType?) -> AASubtitle { 58 | align = prop?.rawValue 59 | return self 60 | } 61 | 62 | @discardableResult 63 | public func verticalAlign(_ prop: AAChartVerticalAlignType?) -> AASubtitle { 64 | verticalAlign = prop?.rawValue 65 | return self 66 | } 67 | 68 | @discardableResult 69 | public func x(_ prop: Float?) -> AASubtitle { 70 | x = prop 71 | return self 72 | } 73 | 74 | @discardableResult 75 | public func y(_ prop: Float?) -> AASubtitle { 76 | y = prop 77 | return self 78 | } 79 | 80 | @discardableResult 81 | public func userHTML(_ prop: Bool?) -> AASubtitle { 82 | userHTML = prop 83 | return self 84 | } 85 | 86 | public override init() { 87 | 88 | } 89 | } 90 | 91 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsModel/AATitle.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AATitle.swift 3 | // AAInfographicsDemo 4 | // 5 | // Created by AnAn on 2019/8/31. 6 | // Copyright © 2019 An An. All rights reserved. 7 | //*************** ...... SOURCE CODE ...... *************** 8 | //***...................................................*** 9 | //*** https://github.com/AAChartModel/AAChartKit *** 10 | //*** https://github.com/AAChartModel/AAChartKit-Swift *** 11 | //***...................................................*** 12 | //*************** ...... SOURCE CODE ...... *************** 13 | 14 | /* 15 | 16 | * ------------------------------------------------------------------------------- 17 | * 18 | * 🌕 🌖 🌗 🌘 ❀❀❀ WARM TIPS!!! ❀❀❀ 🌑 🌒 🌓 🌔 19 | * 20 | * Please contact me on GitHub,if there are any problems encountered in use. 21 | * GitHub Issues : https://github.com/AAChartModel/AAChartKit-Swift/issues 22 | * ------------------------------------------------------------------------------- 23 | * And if you want to contribute for this project, please contact me as well 24 | * GitHub : https://github.com/AAChartModel 25 | * StackOverflow : https://stackoverflow.com/users/12302132/codeforu 26 | * JianShu : https://www.jianshu.com/u/f1e6753d4254 27 | * SegmentFault : https://segmentfault.com/u/huanghunbieguan 28 | * 29 | * ------------------------------------------------------------------------------- 30 | 31 | */ 32 | 33 | import Foundation 34 | 35 | public class AATitle: AAObject { 36 | public var text: String? 37 | public var style: AAStyle? 38 | public var align: String? 39 | public var verticalAlign: String? 40 | public var x: Float? 41 | public var y: Float? 42 | public var userHTML: Bool? 43 | 44 | @discardableResult 45 | public func text(_ prop: String?) -> AATitle { 46 | text = prop 47 | return self 48 | } 49 | 50 | @discardableResult 51 | public func style(_ prop: AAStyle?) -> AATitle { 52 | style = prop 53 | return self 54 | } 55 | 56 | @discardableResult 57 | public func align(_ prop: AAChartAlignType?) -> AATitle { 58 | align = prop?.rawValue 59 | return self 60 | } 61 | 62 | @discardableResult 63 | public func verticalAlign(_ prop: AAChartVerticalAlignType?) -> AATitle { 64 | verticalAlign = prop?.rawValue 65 | return self 66 | } 67 | 68 | @discardableResult 69 | public func x(_ prop: Float?) -> AATitle { 70 | x = prop 71 | return self 72 | } 73 | 74 | @discardableResult 75 | public func y(_ prop: Float?) -> AATitle { 76 | y = prop 77 | return self 78 | } 79 | 80 | @discardableResult 81 | public func userHTML(_ prop: Bool?) -> AATitle { 82 | userHTML = prop 83 | return self 84 | } 85 | 86 | public override init() { 87 | 88 | } 89 | 90 | } 91 | 92 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsModel/AAXAxis.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AAXAxis.swift 3 | // AAInfographicsDemo 4 | // 5 | // Created by AnAn on 2019/6/26. 6 | // Copyright © 2019 An An. All rights reserved. 7 | //*************** ...... SOURCE CODE ...... *************** 8 | //***...................................................*** 9 | //*** https://github.com/AAChartModel/AAChartKit *** 10 | //*** https://github.com/AAChartModel/AAChartKit-Swift *** 11 | //***...................................................*** 12 | //*************** ...... SOURCE CODE ...... *************** 13 | 14 | /* 15 | 16 | * ------------------------------------------------------------------------------- 17 | * 18 | * 🌕 🌖 🌗 🌘 ❀❀❀ WARM TIPS!!! ❀❀❀ 🌑 🌒 🌓 🌔 19 | * 20 | * Please contact me on GitHub,if there are any problems encountered in use. 21 | * GitHub Issues : https://github.com/AAChartModel/AAChartKit-Swift/issues 22 | * ------------------------------------------------------------------------------- 23 | * And if you want to contribute for this project, please contact me as well 24 | * GitHub : https://github.com/AAChartModel 25 | * StackOverflow : https://stackoverflow.com/users/12302132/codeforu 26 | * JianShu : https://www.jianshu.com/u/f1e6753d4254 27 | * SegmentFault : https://segmentfault.com/u/huanghunbieguan 28 | * 29 | * ------------------------------------------------------------------------------- 30 | 31 | */ 32 | 33 | import Foundation 34 | 35 | public class AAXAxis: AAAxis { 36 | 37 | public override init() { 38 | 39 | } 40 | 41 | } 42 | 43 | 44 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsModel/AAYAxis.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AAYAxis.swift 3 | // AAInfographicsDemo 4 | // 5 | // Created by AnAn on 2019/6/26. 6 | // Copyright © 2019 An An. All rights reserved. 7 | //*************** ...... SOURCE CODE ...... *************** 8 | //***...................................................*** 9 | //*** https://github.com/AAChartModel/AAChartKit *** 10 | //*** https://github.com/AAChartModel/AAChartKit-Swift *** 11 | //***...................................................*** 12 | //*************** ...... SOURCE CODE ...... *************** 13 | 14 | /* 15 | 16 | * ------------------------------------------------------------------------------- 17 | * 18 | * 🌕 🌖 🌗 🌘 ❀❀❀ WARM TIPS!!! ❀❀❀ 🌑 🌒 🌓 🌔 19 | * 20 | * Please contact me on GitHub,if there are any problems encountered in use. 21 | * GitHub Issues : https://github.com/AAChartModel/AAChartKit-Swift/issues 22 | * ------------------------------------------------------------------------------- 23 | * And if you want to contribute for this project, please contact me as well 24 | * GitHub : https://github.com/AAChartModel 25 | * StackOverflow : https://stackoverflow.com/users/12302132/codeforu 26 | * JianShu : https://www.jianshu.com/u/f1e6753d4254 27 | * SegmentFault : https://segmentfault.com/u/huanghunbieguan 28 | * 29 | * ------------------------------------------------------------------------------- 30 | 31 | */ 32 | 33 | 34 | import Foundation 35 | 36 | public class AAYAxis: AAAxis { 37 | public var stackLabels: [String: Any]? 38 | public var tooltipValueFormat: String? //Parallel coordinates only. https://api.highcharts.com.cn/highcharts/yAxis.tooltipValueFormat.html 39 | 40 | @discardableResult 41 | public func stackLabels(_ prop: [String: Any]?) -> AAYAxis { 42 | stackLabels = prop 43 | return self 44 | } 45 | 46 | @discardableResult 47 | public func tooltipValueFormat(_ prop: String?) -> AAYAxis { 48 | tooltipValueFormat = prop 49 | return self 50 | } 51 | 52 | 53 | public override init() { 54 | 55 | } 56 | 57 | } 58 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsProModel/AABulletDataElement.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AABullet.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2022/8/6. 6 | // 7 | 8 | import Foundation 9 | 10 | public class AABulletDataElement: AAObject { 11 | public var y: Float? 12 | public var target: Float? 13 | 14 | @discardableResult 15 | public func y(_ prop: Float?) -> AABulletDataElement { 16 | y = prop 17 | return self 18 | } 19 | 20 | @discardableResult 21 | public func target(_ prop: Float?) -> AABulletDataElement { 22 | target = prop 23 | return self 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsProModel/AAColorAxis.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AAColorAxis.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2020/11/10. 6 | // 7 | 8 | public class AAColorAxis: AAObject { 9 | public var min: Any? 10 | public var minColor: String? 11 | public var maxColor: String? 12 | public var dataClasses: [AADataClassesElement]? 13 | public var stops: [Any]? 14 | public var max: Double? // x-axis maximum 15 | // public var min: Double? // x-axis minimum (set to 0, there will be no negative numbers) 16 | public var startOnTick: Bool? // Whether to force the axis to start on a tick. Use this option with the minPadding option to control the axis start. The default is false. 17 | public var endOnTick: Bool?// Whether to force the axis to end on a tick. Use this option with the minPadding option to control the axis end. The default is false. 18 | public var labels: AALabels? 19 | 20 | @discardableResult 21 | public func min(_ prop: Any?) -> AAColorAxis { 22 | min = prop 23 | return self 24 | } 25 | 26 | @discardableResult 27 | public func minColor(_ prop: String?) -> AAColorAxis { 28 | minColor = prop 29 | return self 30 | } 31 | 32 | @discardableResult 33 | public func maxColor(_ prop: String?) -> AAColorAxis { 34 | maxColor = prop 35 | return self 36 | } 37 | 38 | @discardableResult 39 | public func dataClasses(_ prop: [AADataClassesElement]?) -> AAColorAxis { 40 | dataClasses = prop 41 | return self 42 | } 43 | 44 | @discardableResult 45 | public func stops(_ prop: [Any]?) -> AAColorAxis { 46 | stops = prop 47 | return self 48 | } 49 | 50 | @discardableResult 51 | public func max(_ prop: Double?) -> AAColorAxis { 52 | max = prop 53 | return self 54 | } 55 | 56 | // @discardableResult 57 | // public func min(_ prop: Double?) -> AAColorAxis { 58 | // min = prop 59 | // return self 60 | // } 61 | 62 | @discardableResult 63 | public func startOnTick(_ prop: Bool?) -> AAColorAxis { 64 | startOnTick = prop 65 | return self 66 | } 67 | 68 | @discardableResult 69 | public func endOnTick(_ prop: Bool?) -> AAColorAxis { 70 | endOnTick = prop 71 | return self 72 | } 73 | 74 | @discardableResult 75 | public func labels(_ prop: AALabels?) -> AAColorAxis { 76 | labels = prop 77 | return self 78 | } 79 | 80 | public override init() { 81 | 82 | } 83 | 84 | } 85 | 86 | public class AADataClassesElement: AAObject { 87 | public var from: Any? 88 | public var to: Any? 89 | public var color: String? 90 | public var name: String? 91 | 92 | @discardableResult 93 | public func from(_ prop: Any?) -> AADataClassesElement { 94 | from = prop 95 | return self 96 | } 97 | 98 | @discardableResult 99 | public func to(_ prop: Any?) -> AADataClassesElement { 100 | to = prop 101 | return self 102 | } 103 | 104 | @discardableResult 105 | public func color(_ prop: String?) -> AADataClassesElement { 106 | color = prop 107 | return self 108 | } 109 | 110 | @discardableResult 111 | public func name(_ prop: String?) -> AADataClassesElement { 112 | name = prop 113 | return self 114 | } 115 | 116 | public override init() { 117 | 118 | } 119 | 120 | } 121 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsProModel/AAData.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AAData.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2022/8/5. 6 | // 7 | 8 | import Foundation 9 | 10 | public class AAData: AAObject { 11 | public var csv: String? 12 | public var parsed: String? 13 | 14 | @discardableResult 15 | public func csv(_ prop: String?) -> AAData { 16 | csv = prop 17 | return self 18 | } 19 | 20 | @discardableResult 21 | public func parsed(_ prop: String?) -> AAData { 22 | parsed = prop?.aa_toPureJSString() 23 | return self 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsProModel/AAHeatmap.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AAHeatmap.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2022/8/5. 6 | // 7 | 8 | import Foundation 9 | 10 | public class AAHeatmap: AAObject { 11 | public var borderWidth: Float? 12 | public var nullColor: String? 13 | public var colsize: Float? 14 | public var tooltip: AATooltip? 15 | public var data: [Any]? 16 | public var turboThreshold: Double? 17 | 18 | @discardableResult 19 | public func borderWidth(_ prop: Float?) -> AAHeatmap { 20 | borderWidth = prop 21 | return self 22 | } 23 | 24 | @discardableResult 25 | public func nullColor(_ prop: String?) -> AAHeatmap { 26 | nullColor = prop 27 | return self 28 | } 29 | 30 | @discardableResult 31 | public func colsize(_ prop: Float?) -> AAHeatmap { 32 | colsize = prop 33 | return self 34 | } 35 | 36 | @discardableResult 37 | public func tooltip(_ prop: AATooltip?) -> AAHeatmap { 38 | tooltip = prop 39 | return self 40 | } 41 | 42 | @discardableResult 43 | public func data(_ prop: [Any]?) -> AAHeatmap { 44 | data = prop 45 | return self 46 | } 47 | 48 | @discardableResult 49 | public func turboThreshold(_ prop: Double?) -> AAHeatmap { 50 | turboThreshold = prop 51 | return self 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsProModel/AAItem.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AAItem.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2022/8/1. 6 | // 7 | 8 | 9 | public class AAItem: AAObject { 10 | public var name: String? 11 | public var data: [Any]? 12 | public var keys: [String]? 13 | public var dataLabels:AADataLabels? 14 | public var size: Float? 15 | public var allowPointSelect: Bool? 16 | public var cursor: String? 17 | public var showInLegend: Bool? 18 | public var startAngle: Float? 19 | public var endAngle: Float? 20 | public var center: [Int]? 21 | public var marker: AAMarker? 22 | 23 | @discardableResult 24 | public func name(_ prop: String?) -> AAItem { 25 | name = prop 26 | return self 27 | } 28 | 29 | @discardableResult 30 | public func data(_ prop: [Any]?) -> AAItem { 31 | data = prop 32 | return self 33 | } 34 | 35 | @discardableResult 36 | public func keys(_ prop: [String]?) -> AAItem { 37 | keys = prop 38 | return self 39 | } 40 | 41 | @discardableResult 42 | public func dataLabels(_ prop: AADataLabels?) -> AAItem { 43 | dataLabels = prop 44 | return self 45 | } 46 | 47 | @discardableResult 48 | public func size(_ prop: Float?) -> AAItem { 49 | size = prop 50 | return self 51 | } 52 | 53 | @discardableResult 54 | public func allowPointSelect(_ prop: Bool?) -> AAItem { 55 | allowPointSelect = prop 56 | return self 57 | } 58 | 59 | @discardableResult 60 | public func cursor(_ prop: String) -> AAItem { 61 | cursor = prop 62 | return self 63 | } 64 | 65 | @discardableResult 66 | public func showInLegend(_ prop: Bool?) -> AAItem { 67 | showInLegend = prop 68 | return self 69 | } 70 | 71 | @discardableResult 72 | public func startAngle(_ prop: Float?) -> AAItem { 73 | startAngle = prop 74 | return self 75 | } 76 | 77 | @discardableResult 78 | public func endAngle(_ prop: Float?) -> AAItem { 79 | endAngle = prop 80 | return self 81 | } 82 | 83 | @discardableResult 84 | public func center(_ prop: [Int]?) -> AAItem { 85 | center = prop 86 | return self 87 | } 88 | 89 | @discardableResult 90 | public func marker(_ prop: AAMarker?) -> AAItem { 91 | marker = prop 92 | return self 93 | } 94 | 95 | public override init() { 96 | 97 | } 98 | 99 | } 100 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsProModel/AALayoutAlgorithm.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AALayoutAlgorithm.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2020/11/10. 6 | // 7 | 8 | 9 | public class AALayoutAlgorithm: AAObject { 10 | public var gravitationalConstant: Any? 11 | public var splitSeries: Bool? 12 | public var seriesInteraction: Bool? 13 | public var dragBetweenSeries: Bool? 14 | public var parentNodeLimit: Bool? 15 | 16 | @discardableResult 17 | public func gravitationalConstant(_ prop: Any?) -> AALayoutAlgorithm { 18 | gravitationalConstant = prop 19 | return self 20 | } 21 | 22 | @discardableResult 23 | public func splitSeries(_ prop: Bool?) -> AALayoutAlgorithm { 24 | splitSeries = prop 25 | return self 26 | } 27 | 28 | @discardableResult 29 | public func seriesInteraction(_ prop: Bool?) -> AALayoutAlgorithm { 30 | seriesInteraction = prop 31 | return self 32 | } 33 | 34 | @discardableResult 35 | public func dragBetweenSeries(_ prop: Bool?) -> AALayoutAlgorithm { 36 | dragBetweenSeries = prop 37 | return self 38 | } 39 | 40 | @discardableResult 41 | public func parentNodeLimit(_ prop: Bool?) -> AALayoutAlgorithm { 42 | parentNodeLimit = prop 43 | return self 44 | } 45 | 46 | public override init() { 47 | 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsProModel/AALevelsElement.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AALevels.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2020/11/10. 6 | // 7 | 8 | 9 | public class AALevelsElement: AAObject { 10 | public var borderColor: String? 11 | public var borderDashStyle: String? 12 | public var borderWidth: Any? 13 | public var color: String? 14 | public var colorByPoint: Any? 15 | public var dataLabels: AADataLabels? 16 | public var layoutAlgorithm: String? 17 | public var layoutStartingDirection: String? 18 | public var level: Any? 19 | public var colorVariation: Any? 20 | public var height: Float? 21 | 22 | @discardableResult 23 | public func borderColor(_ prop: String?) -> AALevelsElement { 24 | borderColor = prop 25 | return self 26 | } 27 | 28 | @discardableResult 29 | public func borderDashStyle(_ prop: String?) -> AALevelsElement { 30 | borderDashStyle = prop 31 | return self 32 | } 33 | 34 | @discardableResult 35 | public func borderWidth(_ prop: Any?) -> AALevelsElement { 36 | borderWidth = prop 37 | return self 38 | } 39 | 40 | @discardableResult 41 | public func color(_ prop: String?) -> AALevelsElement { 42 | color = prop 43 | return self 44 | } 45 | 46 | @discardableResult 47 | public func colorByPoint(_ prop: Any?) -> AALevelsElement { 48 | colorByPoint = prop 49 | return self 50 | } 51 | 52 | @discardableResult 53 | public func dataLabels(_ prop: AADataLabels?) -> AALevelsElement { 54 | dataLabels = prop 55 | return self 56 | } 57 | 58 | @discardableResult 59 | public func layoutAlgorithm(_ prop: String?) -> AALevelsElement { 60 | layoutAlgorithm = prop 61 | return self 62 | } 63 | 64 | @discardableResult 65 | public func layoutStartingDirection(_ prop: String?) -> AALevelsElement { 66 | layoutStartingDirection = prop 67 | return self 68 | } 69 | 70 | @discardableResult 71 | public func level(_ prop: Any?) -> AALevelsElement { 72 | level = prop 73 | return self 74 | } 75 | 76 | @discardableResult 77 | public func colorVariation(_ prop: AAColorVariation?) -> AALevelsElement { 78 | colorVariation = prop 79 | return self 80 | } 81 | 82 | @discardableResult 83 | public func height(_ prop: Float?) -> AALevelsElement { 84 | height = prop 85 | return self 86 | } 87 | 88 | public override init() { 89 | 90 | } 91 | 92 | } 93 | 94 | public class AAColorVariation: AAObject { 95 | public var key: String? 96 | public var to: Any? 97 | 98 | @discardableResult 99 | public func key(_ prop: String?) -> AAColorVariation { 100 | key = prop 101 | return self 102 | } 103 | 104 | @discardableResult 105 | public func to(_ prop: Any?) -> AAColorVariation { 106 | to = prop 107 | return self 108 | } 109 | 110 | public override init() { 111 | 112 | } 113 | 114 | } 115 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsProModel/AAPackedbubble.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AAPackedbubble.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2020/11/10. 6 | // 7 | 8 | 9 | public class AAPackedbubble: AAObject { 10 | public var minSize: String? 11 | public var maxSize: String? 12 | public var zMin: Any? 13 | public var zMax: Any? 14 | public var layoutAlgorithm: AALayoutAlgorithm? 15 | public var dataLabels: AADataLabels? 16 | public var useSimulation: Bool? 17 | 18 | @discardableResult 19 | public func minSize(_ prop: String?) -> AAPackedbubble { 20 | minSize = prop 21 | return self 22 | } 23 | 24 | @discardableResult 25 | public func maxSize(_ prop: String?) -> AAPackedbubble { 26 | maxSize = prop 27 | return self 28 | } 29 | 30 | @discardableResult 31 | public func zMin(_ prop: Any?) -> AAPackedbubble { 32 | zMin = prop 33 | return self 34 | } 35 | 36 | @discardableResult 37 | public func zMax(_ prop: Any?) -> AAPackedbubble { 38 | zMax = prop 39 | return self 40 | } 41 | 42 | @discardableResult 43 | public func layoutAlgorithm(_ prop: AALayoutAlgorithm?) -> AAPackedbubble { 44 | layoutAlgorithm = prop 45 | return self 46 | } 47 | 48 | @discardableResult 49 | public func dataLabels(_ prop: AADataLabels?) -> AAPackedbubble { 50 | dataLabels = prop 51 | return self 52 | } 53 | 54 | @discardableResult 55 | public func useSimulation(_ prop: Bool?) -> AAPackedbubble { 56 | useSimulation = prop 57 | return self 58 | } 59 | 60 | public override init() { 61 | 62 | } 63 | 64 | } 65 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsProModel/AAParallelAxes.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AAParallelAxes.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2022/8/6. 6 | // 7 | 8 | import Foundation 9 | 10 | public class AAParallelAxes: AAObject { 11 | public var lineWidth: Float? 12 | 13 | @discardableResult 14 | public func lineWidth(_ prop: Float?) -> AAParallelAxes { 15 | lineWidth = prop 16 | return self 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsProModel/AASolidgauge.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AASolidgauge.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2022/8/5. 6 | // 7 | 8 | import Foundation 9 | 10 | public class AASolidgauge: AAObject { 11 | public var dataLabels: AADataLabels? 12 | public var linecap: String? 13 | public var stickyTracking: Bool? 14 | public var rounded: Bool? 15 | 16 | @discardableResult 17 | public func dataLabels(_ prop: AADataLabels?) -> AASolidgauge { 18 | dataLabels = prop 19 | return self 20 | } 21 | 22 | @discardableResult 23 | public func linecap(_ prop: String?) -> AASolidgauge { 24 | linecap = prop 25 | return self 26 | } 27 | 28 | @discardableResult 29 | public func stickyTracking(_ prop: Bool?) -> AASolidgauge { 30 | stickyTracking = prop 31 | return self 32 | } 33 | 34 | @discardableResult 35 | public func rounded(_ prop: Bool?) -> AASolidgauge { 36 | rounded = prop 37 | return self 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsProModel/AASolidgaugeDataElement.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AASolidgaugeDataElement.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2022/8/4. 6 | // 7 | 8 | import Foundation 9 | 10 | public class AASolidgaugeDataElement: AADataElement { 11 | public var radius: String? 12 | public var innerRadius: String? 13 | 14 | @discardableResult 15 | public func radius(_ prop: String) -> AASolidgaugeDataElement { 16 | radius = prop 17 | return self 18 | } 19 | 20 | @discardableResult 21 | public func innerRadius(_ prop: String) -> AASolidgaugeDataElement { 22 | innerRadius = prop 23 | return self 24 | } 25 | 26 | public override init() { 27 | 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AAOptionsProModel/AATreemap.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AATreemap.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2020/11/10. 6 | // 7 | 8 | 9 | public class AATreemap: AAObject { 10 | public var layoutAlgorithm: String? 11 | public var allowTraversingTree: Bool? 12 | 13 | @discardableResult 14 | public func layoutAlgorithm(_ prop: String?) -> AATreemap { 15 | layoutAlgorithm = prop 16 | return self 17 | } 18 | 19 | @discardableResult 20 | public func allowTraversingTree(_ prop: Bool?) -> AATreemap { 21 | allowTraversingTree = prop 22 | return self 23 | } 24 | 25 | public override init() { 26 | 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AATool/AAColor.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AAColor.swift 3 | // AAInfographicsDemo 4 | // 5 | // Created by AnAn on 2018/11/19. 6 | // Copyright © 2018 An An. All rights reserved. 7 | //*************** ...... SOURCE CODE ...... *************** 8 | //***...................................................*** 9 | //*** https://github.com/AAChartModel/AAChartKit *** 10 | //*** https://github.com/AAChartModel/AAChartKit-Swift *** 11 | //***...................................................*** 12 | //*************** ...... SOURCE CODE ...... *************** 13 | 14 | /* 15 | 16 | * ------------------------------------------------------------------------------- 17 | * 18 | * 🌕 🌖 🌗 🌘 ❀❀❀ WARM TIPS!!! ❀❀❀ 🌑 🌒 🌓 🌔 19 | * 20 | * Please contact me on GitHub,if there are any problems encountered in use. 21 | * GitHub Issues : https://github.com/AAChartModel/AAChartKit-Swift/issues 22 | * ------------------------------------------------------------------------------- 23 | * And if you want to contribute for this project, please contact me as well 24 | * GitHub : https://github.com/AAChartModel 25 | * StackOverflow : https://stackoverflow.com/users/12302132/codeforu 26 | * JianShu : https://www.jianshu.com/u/f1e6753d4254 27 | * SegmentFault : https://segmentfault.com/u/huanghunbieguan 28 | * 29 | * ------------------------------------------------------------------------------- 30 | 31 | */ 32 | import Foundation 33 | 34 | public class AAColor { 35 | 36 | public class var black: String { 37 | "black" 38 | } // 0.0 white 39 | 40 | public class var darkGray: String { 41 | "darkGray" 42 | } // 0.333 white 43 | 44 | public class var lightGray: String { 45 | "lightGray" 46 | } // 0.667 white 47 | 48 | public class var white: String { 49 | "white" 50 | } // 1.0 white 51 | 52 | public class var gray: String { 53 | "gray" 54 | } // 0.5 white 55 | 56 | public class var red: String { 57 | "red" 58 | } // 1.0, 0.0, 0.0 RGB 59 | 60 | public class var green: String { 61 | "green" 62 | } // 0.0, 1.0, 0.0 RGB 63 | 64 | public class var blue: String { 65 | "blue" 66 | } // 0.0, 0.0, 1.0 RGB 67 | 68 | public class var cyan: String { 69 | "cyan" 70 | } // 0.0, 1.0, 1.0 RGB 71 | 72 | public class var yellow: String { 73 | "yellow" 74 | } // 1.0, 1.0, 0.0 RGB 75 | 76 | public class var magenta: String { 77 | "magenta" 78 | } // 1.0, 0.0, 1.0 RGB 79 | 80 | public class var orange: String { 81 | "orange" 82 | } // 1.0, 0.5, 0.0 RGB 83 | 84 | public class var purple: String { 85 | "purple" 86 | } // 0.5, 0.0, 0.5 RGB 87 | 88 | public class var brown: String { 89 | "brown" 90 | } // 0.6, 0.4, 0.2 RGB 91 | 92 | public class var clear: String { 93 | "#00000000" 94 | } // 0.0 white, 0.0 alpha 95 | 96 | public class func rgbaColor( 97 | _ red: Int, 98 | _ green: Int, 99 | _ blue: Int, 100 | _ alpha: Float = 1.0 101 | ) -> String { 102 | "rgba(\(red),\(green),\(blue),\(alpha))" 103 | } 104 | } 105 | 106 | public func AARgba( 107 | _ red: Int, 108 | _ green: Int, 109 | _ blue: Int, 110 | _ alpha: Float = 1.0 111 | ) -> String { 112 | "rgba(\(red),\(green),\(blue),\(alpha))" 113 | } 114 | 115 | public func AARgb( 116 | _ red: Int, 117 | _ green: Int, 118 | _ blue: Int 119 | ) -> String { 120 | AARgba(red, green, blue) 121 | } 122 | 123 | -------------------------------------------------------------------------------- /AAInfographics-Pro/AATool/AAExtension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AAStringExtension.swift 3 | // AAInfographicsDemo 4 | // 5 | // Created by AnAn on 2020/8/11. 6 | // Copyright © 2020 An An. All rights reserved. 7 | //*************** ...... SOURCE CODE ...... *************** 8 | //***...................................................*** 9 | //*** https://github.com/AAChartModel/AAChartKit *** 10 | //*** https://github.com/AAChartModel/AAChartKit-Swift *** 11 | //***...................................................*** 12 | //*************** ...... SOURCE CODE ...... *************** 13 | 14 | /* 15 | 16 | * ------------------------------------------------------------------------------- 17 | * 18 | * 🌕 🌖 🌗 🌘 ❀❀❀ WARM TIPS!!! ❀❀❀ 🌑 🌒 🌓 🌔 19 | * 20 | * Please contact me on GitHub,if there are any problems encountered in use. 21 | * GitHub Issues : https://github.com/AAChartModel/AAChartKit-Swift/issues 22 | * ------------------------------------------------------------------------------- 23 | * And if you want to contribute for this project, please contact me as well 24 | * GitHub : https://github.com/AAChartModel 25 | * StackOverflow : https://stackoverflow.com/users/12302132/codeforu 26 | * JianShu : https://www.jianshu.com/u/f1e6753d4254 27 | * SegmentFault : https://segmentfault.com/u/huanghunbieguan 28 | * 29 | * ------------------------------------------------------------------------------- 30 | 31 | */ 32 | 33 | public extension AAStyle { 34 | convenience init(color : String?) { 35 | self.init(color: color, fontSize: nil) 36 | } 37 | 38 | convenience init(color : String?, fontSize: Float?) { 39 | self.init(color: color, fontSize: fontSize,weight: nil) 40 | } 41 | 42 | convenience init(color : String?, fontSize: Float?, weight: AAChartFontWeightType?) { 43 | self.init(color: color, fontSize: fontSize,weight: weight, outline: nil) 44 | } 45 | 46 | convenience init(color : String?, fontSize: Float?, weight: AAChartFontWeightType?, outline: String?) { 47 | self.init() 48 | self.color(color) 49 | .fontSize(fontSize) 50 | .fontWeight(weight) 51 | .textOutline(outline) 52 | } 53 | } 54 | 55 | public extension String { 56 | 57 | func aa_toPureJSString() -> String { 58 | //https://stackoverflow.com/questions/34334232/why-does-function-not-work-but-function-does-chrome-devtools-node 59 | var pureJSStr = "(\(self))" 60 | pureJSStr = pureJSStr.replacingOccurrences(of: "'", with: "\"") 61 | pureJSStr = pureJSStr.replacingOccurrences(of: "\0", with: "") 62 | pureJSStr = pureJSStr.replacingOccurrences(of: "\n", with: "") 63 | pureJSStr = pureJSStr.replacingOccurrences(of: "\\", with: "\\\\") 64 | pureJSStr = pureJSStr.replacingOccurrences(of: "\"", with: "\\\"") 65 | pureJSStr = pureJSStr.replacingOccurrences(of: "\n", with: "\\n") 66 | pureJSStr = pureJSStr.replacingOccurrences(of: "\r", with: "\\r") 67 | pureJSStr = pureJSStr.replacingOccurrences(of: "\u{000C}", with: "\\f") 68 | pureJSStr = pureJSStr.replacingOccurrences(of: "\u{2028}", with: "\\u2028") 69 | pureJSStr = pureJSStr.replacingOccurrences(of: "\u{2029}", with: "\\u2029") 70 | return pureJSStr 71 | } 72 | 73 | } 74 | 75 | 76 | public extension Array { 77 | 78 | //Convert Swift array to be JavaScript array 79 | func aa_toJSArray() -> String { 80 | var originalJsArrStr = "" 81 | for element in self { 82 | originalJsArrStr = originalJsArrStr + "'\(element)'," 83 | } 84 | 85 | return "[\(originalJsArrStr)]" 86 | } 87 | 88 | } 89 | 90 | 91 | public extension AAChartModel { 92 | 93 | //Convert AAChartModel to be AAOptions 94 | func aa_toAAOptions() -> AAOptions { 95 | AAOptionsConstructor.configureChartOptions(self) 96 | } 97 | } 98 | 99 | 100 | -------------------------------------------------------------------------------- /AAInfographics-Pro/PackageBundlePathLoader.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PackageBundlePathLoader.swift 3 | // AAInfographicsDemo 4 | // 5 | // Created by An An on 2022/5/24. 6 | // Copyright © 2022 An An. All rights reserved. 7 | //*************** ...... SOURCE CODE ...... *************** 8 | //***...................................................*** 9 | //*** https://github.com/AAChartModel/AAChartKit *** 10 | //*** https://github.com/AAChartModel/AAChartKit-Swift *** 11 | //***...................................................*** 12 | //*************** ...... SOURCE CODE ...... *************** 13 | 14 | /* 15 | 16 | * ------------------------------------------------------------------------------- 17 | * 18 | * 🌕 🌖 🌗 🌘 ❀❀❀ WARM TIPS!!! ❀❀❀ 🌑 🌒 🌓 🌔 19 | * 20 | * Please contact me on GitHub,if there are any problems encountered in use. 21 | * GitHub Issues : https://github.com/AAChartModel/AAChartKit-Swift/issues 22 | * ------------------------------------------------------------------------------- 23 | * And if you want to contribute for this project, please contact me as well 24 | * GitHub : https://github.com/AAChartModel 25 | * StackOverflow : https://stackoverflow.com/users/12302132/codeforu 26 | * JianShu : https://www.jianshu.com/u/f1e6753d4254 27 | * SegmentFault : https://segmentfault.com/u/huanghunbieguan 28 | * 29 | * ------------------------------------------------------------------------------- 30 | 31 | */ 32 | 33 | import Foundation 34 | 35 | class BundlePathLoader { 36 | func path( 37 | forResource name: String, 38 | ofType fileType: String, 39 | inDirectory subpath: String? = nil, 40 | forLocalization localizationName: String? = nil 41 | ) -> String? { 42 | return Bundle.module.path( 43 | forResource: name, 44 | ofType: fileType, 45 | inDirectory: subpath, 46 | forLocalization: localizationName 47 | ) 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /AAInfographics-Pro/ProjectBundlePathLoader.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PackageBundlePathLoader.swift 3 | // AAInfographicsDemo 4 | // 5 | // Created by Aleksandar Vacić on 2020/12/15. 6 | // Copyright © 2022 An An. All rights reserved. 7 | //*************** ...... SOURCE CODE ...... *************** 8 | //***...................................................*** 9 | //*** https://github.com/AAChartModel/AAChartKit *** 10 | //*** https://github.com/AAChartModel/AAChartKit-Swift *** 11 | //***...................................................*** 12 | //*************** ...... SOURCE CODE ...... *************** 13 | 14 | /* 15 | 16 | * ------------------------------------------------------------------------------- 17 | * 18 | * 🌕 🌖 🌗 🌘 ❀❀❀ WARM TIPS!!! ❀❀❀ 🌑 🌒 🌓 🌔 19 | * 20 | * Please contact me on GitHub,if there are any problems encountered in use. 21 | * GitHub Issues : https://github.com/AAChartModel/AAChartKit-Swift/issues 22 | * ------------------------------------------------------------------------------- 23 | * And if you want to contribute for this project, please contact me as well 24 | * GitHub : https://github.com/AAChartModel 25 | * StackOverflow : https://stackoverflow.com/users/12302132/codeforu 26 | * JianShu : https://www.jianshu.com/u/f1e6753d4254 27 | * SegmentFault : https://segmentfault.com/u/huanghunbieguan 28 | * 29 | * ------------------------------------------------------------------------------- 30 | 31 | */ 32 | 33 | import Foundation 34 | 35 | class BundlePathLoader { 36 | func path( 37 | forResource name: String, 38 | ofType fileType: String, 39 | inDirectory subpath: String? = nil, 40 | forLocalization localizationName: String? = nil 41 | ) -> String? { 42 | return Bundle(for: type(of: self)).path( 43 | forResource: name, 44 | ofType: fileType, 45 | inDirectory: subpath, 46 | forLocalization: localizationName 47 | ) 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/AAInfographics-ProDemo.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.network.client 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2020/11/10. 6 | // 7 | 8 | import UIKit 9 | 10 | @UIApplicationMain 11 | class AppDelegate: UIResponder, UIApplicationDelegate { 12 | 13 | 14 | 15 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 16 | // Override point for customization after application launch. 17 | return true 18 | } 19 | 20 | // MARK: UISceneSession Lifecycle 21 | 22 | func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { 23 | // Called when a new scene session is being created. 24 | // Use this method to select a configuration to create the new scene with. 25 | return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) 26 | } 27 | 28 | func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { 29 | // Called when the user discards a scene session. 30 | // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. 31 | // Use this method to release any resources that were specific to the discarded scenes, as they will not return. 32 | } 33 | 34 | 35 | } 36 | 37 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "scale" : "2x", 6 | "size" : "20x20" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "scale" : "3x", 11 | "size" : "20x20" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "scale" : "2x", 16 | "size" : "29x29" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "scale" : "3x", 21 | "size" : "29x29" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "scale" : "2x", 26 | "size" : "40x40" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "scale" : "3x", 31 | "size" : "40x40" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "scale" : "2x", 36 | "size" : "60x60" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "scale" : "3x", 41 | "size" : "60x60" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "scale" : "1x", 46 | "size" : "20x20" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "scale" : "2x", 51 | "size" : "20x20" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "scale" : "1x", 56 | "size" : "29x29" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "scale" : "2x", 61 | "size" : "29x29" 62 | }, 63 | { 64 | "idiom" : "ipad", 65 | "scale" : "1x", 66 | "size" : "40x40" 67 | }, 68 | { 69 | "idiom" : "ipad", 70 | "scale" : "2x", 71 | "size" : "40x40" 72 | }, 73 | { 74 | "idiom" : "ipad", 75 | "scale" : "1x", 76 | "size" : "76x76" 77 | }, 78 | { 79 | "idiom" : "ipad", 80 | "scale" : "2x", 81 | "size" : "76x76" 82 | }, 83 | { 84 | "idiom" : "ipad", 85 | "scale" : "2x", 86 | "size" : "83.5x83.5" 87 | }, 88 | { 89 | "idiom" : "ios-marketing", 90 | "scale" : "1x", 91 | "size" : "1024x1024" 92 | } 93 | ], 94 | "info" : { 95 | "author" : "xcode", 96 | "version" : 1 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/AAPlugins/AABoost/AABoost.swift: -------------------------------------------------------------------------------- 1 | // 2 | // File.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2024/11/18. 6 | // 7 | 8 | import Foundation 9 | 10 | /** 11 | boost:{ 12 | allowForce:true 13 | debug:{ 14 | showSkipSummary:false 15 | timeBufferCopy:false 16 | timeKDTree:false 17 | timeRendering:false 18 | timeSeriesProcessing:false 19 | timeSetup:false 20 | } 21 | enabled:true 22 | pixelRatio:1 23 | seriesThreshold:50 24 | useGPUTranslations:false 25 | usePreallocated:false 26 | } 27 | */ 28 | public class AABoost: AAObject { 29 | public var allowForce: Bool? 30 | public var debug: AADebug? 31 | public var enabled: Bool? 32 | public var pixelRatio: Float? 33 | public var seriesThreshold: Int? 34 | public var useGPUTranslations: Bool? 35 | public var usePreallocated: Bool? 36 | 37 | public override init() { 38 | 39 | } 40 | 41 | @discardableResult 42 | public func allowForce(_ prop: Bool?) -> AABoost { 43 | allowForce = prop 44 | return self 45 | } 46 | 47 | @discardableResult 48 | public func debug(_ prop: AADebug?) -> AABoost { 49 | debug = prop 50 | return self 51 | } 52 | 53 | @discardableResult 54 | public func enabled(_ prop: Bool?) -> AABoost { 55 | enabled = prop 56 | return self 57 | } 58 | 59 | @discardableResult 60 | public func pixelRatio(_ prop: Float?) -> AABoost { 61 | pixelRatio = prop 62 | return self 63 | } 64 | 65 | @discardableResult 66 | public func seriesThreshold(_ prop: Int?) -> AABoost { 67 | seriesThreshold = prop 68 | return self 69 | } 70 | 71 | @discardableResult 72 | public func useGPUTranslations(_ prop: Bool?) -> AABoost { 73 | useGPUTranslations = prop 74 | return self 75 | } 76 | 77 | @discardableResult 78 | public func usePreallocated(_ prop: Bool?) -> AABoost { 79 | usePreallocated = prop 80 | return self 81 | } 82 | } 83 | 84 | 85 | public class AADebug: AAObject { 86 | public var showSkipSummary: Bool? 87 | public var timeBufferCopy: Bool? 88 | public var timeKDTree: Bool? 89 | public var timeRendering: Bool? 90 | public var timeSeriesProcessing: Bool? 91 | public var timeSetup: Bool? 92 | 93 | public override init() { 94 | 95 | } 96 | 97 | @discardableResult 98 | public func showSkipSummary(_ prop: Bool?) -> AADebug { 99 | showSkipSummary = prop 100 | return self 101 | } 102 | 103 | @discardableResult 104 | public func timeBufferCopy(_ prop: Bool?) -> AADebug { 105 | timeBufferCopy = prop 106 | return self 107 | } 108 | 109 | @discardableResult 110 | public func timeKDTree(_ prop: Bool?) -> AADebug { 111 | timeKDTree = prop 112 | return self 113 | } 114 | 115 | @discardableResult 116 | public func timeRendering(_ prop: Bool?) -> AADebug { 117 | timeRendering = prop 118 | return self 119 | } 120 | 121 | @discardableResult 122 | public func timeSeriesProcessing(_ prop: Bool?) -> AADebug { 123 | timeSeriesProcessing = prop 124 | return self 125 | } 126 | 127 | @discardableResult 128 | public func timeSetup(_ prop: Bool?) -> AADebug { 129 | timeSetup = prop 130 | return self 131 | } 132 | } 133 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/AAPlugins/AADrilldown/AABoostChartVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AABubbleChartVC.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2022/10/15. 6 | // 7 | 8 | import Foundation 9 | 10 | class AABoostChartVC: AABaseChartVC { 11 | 12 | override func viewDidLoad() { 13 | super.viewDidLoad() 14 | 15 | /** 16 | NSString *jsPath = [[NSBundle mainBundle] pathForResource:@"AADrilldown" ofType:@"js"]; 17 | self.aaChartView.pluginsArray = @[jsPath]; 18 | */ 19 | // let jsPath: String = Bundle.main.path(forResource: "AABoost", ofType: "js") ?? "" 20 | // self.aaChartView?.pluginsArray = [jsPath] 21 | 22 | //输出查看 AAOption 的 computedProperties 内容 23 | // AAOptions *aaOptions = [self chartConfigurationWithSelectedIndex:self.selectedIndex]; 24 | let aaOptions: AAOptions = self.chartConfigurationWithSelectedIndex(self.selectedIndex) as! AAOptions 25 | print("AAOptions 新增的计算属性 computedProperties: \(String(describing: aaOptions.computedProperties()))") 26 | 27 | 28 | } 29 | 30 | override func chartConfigurationWithSelectedIndex(_ selectedIndex: Int) -> Any? { 31 | switch (selectedIndex) { 32 | /** 33 | case 0: return [AABoostChartComposer lineChart]; 34 | case 1: return [AABoostChartComposer areaChart]; 35 | case 2: return [AABoostChartComposer columnChart]; 36 | */ 37 | 38 | /** 39 | //分形曼德尔布罗特图 40 | class func fractalMandelbrot() -> AAOptions 41 | 42 | //分形谢尔宾斯基树图 43 | class func fractalSierpinskiTreeData() -> AAOptions 44 | 45 | //分形谢尔宾斯基三角形图 46 | class func fractalSierpinskiTriangleData() -> AAOptions 47 | 48 | //分形谢尔宾斯基地毯图 49 | class func fractalSierpinskiCarpetData() -> AAOptions 50 | */ 51 | 52 | case 0: return AABoostFractalChartComposer.fractalMandelbrot() 53 | case 1: return AABoostFractalChartComposer.fractalSierpinskiTreeData() 54 | case 2: return AABoostFractalChartComposer.fractalSierpinskiTriangleData() 55 | case 3: return AABoostFractalChartComposer.fractalSierpinskiCarpetData() 56 | 57 | // .pluginsArray([Bundle.main.path(forResource: "AABoost", ofType: "js") ?? ""]) 58 | // case 1: return AABoostChartComposer.areaChart().pluginsArray([Bundle.main.path(forResource: "AABoost", ofType: "js") ?? ""]) 59 | // case 2: return AABoostChartComposer.columnChart().pluginsArray([Bundle.main.path(forResource: "AABoost", ofType: "js") ?? ""]) 60 | // case 3: return AABoostChartComposer.scatterChartWith1MillionPoints().pluginsArray([Bundle.main.path(forResource: "AABoost", ofType: "js") ?? ""]) 61 | 62 | default: return nil 63 | } 64 | } 65 | 66 | } 67 | 68 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/AAPlugins/AADrilldown/AADrilldown.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AAParallelAxes.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2022/8/6. 6 | // 7 | 8 | import Foundation 9 | 10 | /** 11 | drilldown: { 12 | breadcrumbs: { 13 | position: { 14 | align: 'right' 15 | } 16 | }, 17 | series: [ 18 | { 19 | name: 'Chrome', 20 | id: 'Chrome', 21 | data: [ 22 | */ 23 | public class AADrilldown: AAObject { 24 | public var breadcrumbs: AABreadcrumbs? 25 | public var series: [AASeriesElement]? 26 | 27 | @discardableResult 28 | public func breadcrumbs(_ prop: AABreadcrumbs?) -> AADrilldown { 29 | breadcrumbs = prop 30 | return self 31 | } 32 | 33 | @discardableResult 34 | public func series(_ prop: [AASeriesElement]?) -> AADrilldown { 35 | series = prop 36 | return self 37 | } 38 | 39 | public override init() { 40 | 41 | } 42 | } 43 | 44 | 45 | public class AABreadcrumbs: AAObject { 46 | public var position: AAPosition? 47 | 48 | @discardableResult 49 | public func position(_ prop: AAPosition?) -> AABreadcrumbs { 50 | position = prop 51 | return self 52 | } 53 | 54 | public override init() { 55 | 56 | } 57 | } 58 | 59 | 60 | 61 | /** 62 | data: [ 63 | { 64 | name: 'Chrome', 65 | y: 63.06, 66 | drilldown: 'Chrome' 67 | }, 68 | { 69 | name: 'Safari', 70 | y: 19.84, 71 | drilldown: 'Safari' 72 | }, 73 | */ 74 | public class AADrilldownDataElement: AAObject { 75 | public var name: String? 76 | public var y: Float? 77 | public var drilldown: String? 78 | 79 | @discardableResult 80 | public func name(_ prop: String?) -> AADrilldownDataElement { 81 | name = prop 82 | return self 83 | } 84 | 85 | @discardableResult 86 | public func y(_ prop: Float?) -> AADrilldownDataElement { 87 | y = prop 88 | return self 89 | } 90 | 91 | @discardableResult 92 | public func drilldown(_ prop: String?) -> AADrilldownDataElement { 93 | drilldown = prop 94 | return self 95 | } 96 | 97 | public override init() { 98 | 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/AAPlugins/AADrilldown/AADrilldownChartVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AABubbleChartVC.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2022/10/15. 6 | // 7 | 8 | import Foundation 9 | 10 | class AADrilldownChartVC: AABaseChartVC { 11 | 12 | override func viewDidLoad() { 13 | super.viewDidLoad() 14 | 15 | /** 16 | NSString *jsPath = [[NSBundle mainBundle] pathForResource:@"AADrilldown" ofType:@"js"]; 17 | self.aaChartView.pluginsArray = @[jsPath]; 18 | */ 19 | // let jsPath: String = Bundle.main.path(forResource: "AADrilldown", ofType: "js") ?? "" 20 | // self.aaChartView?.pluginsArray = [jsPath] 21 | 22 | } 23 | 24 | override func chartConfigurationWithSelectedIndex(_ selectedIndex: Int) -> Any? { 25 | switch (selectedIndex) { 26 | case 0: return AADrilldownChartComposer.columnChart().pluginsArray([Bundle.main.path(forResource: "AADrilldown", ofType: "js") ?? ""]) 27 | // case 1: return AABubbleChartComposer.packedbubbleSplitChart() 28 | // case 2: return AABubbleChartComposer.packedbubbleSpiralChart() 29 | // case 3: return AABubbleChartComposer.eulerChart() 30 | // case 4: return AABubbleChartComposer.vennChart() 31 | default: return nil 32 | } 33 | } 34 | 35 | } 36 | 37 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/AAPlugins/AADrilldown/AAOptions+Boost.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AAOptions+Drilldown.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2024/11/18. 6 | // 7 | 8 | import Foundation 9 | 10 | //为 AAOptions 添加 drilldown 属性 11 | 12 | // 定义关联对象的键 boost 13 | private var boostKey: UInt8 = 0 14 | 15 | public extension AAOptions { 16 | var boost: AABoost? { 17 | get { 18 | return objc_getAssociatedObject(self, &boostKey) as? AABoost 19 | } 20 | set { 21 | objc_setAssociatedObject(self, &boostKey, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) 22 | } 23 | } 24 | 25 | @discardableResult 26 | func boost(_ prop: AABoost?) -> AAOptions { 27 | boost = prop 28 | return self 29 | } 30 | } 31 | 32 | 33 | 34 | //遵循协议以提供计算属性 35 | //extension AAOptions: SerializableWithComputedProperties { 36 | // public func computedProperties() -> [String: Any] { 37 | // return [ 38 | // "boost": boost?.toDic() as Any 39 | // ] 40 | // } 41 | //} 42 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/AAPlugins/AADrilldown/AAOptions+Drilldown.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AAOptions+Drilldown.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2024/11/18. 6 | // 7 | 8 | import Foundation 9 | 10 | //为 AAOptions 添加 drilldown 属性 11 | 12 | // 定义关联对象的键 drilldownKey 13 | private var drilldownKey: UInt8 = 0 14 | 15 | public extension AAOptions { 16 | var drilldown: AADrilldown? { 17 | get { 18 | return objc_getAssociatedObject(self, &drilldownKey) as? AADrilldown 19 | } 20 | set { 21 | objc_setAssociatedObject(self, &drilldownKey, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) 22 | } 23 | } 24 | 25 | @discardableResult 26 | func drilldown(_ prop: AADrilldown?) -> AAOptions { 27 | drilldown = prop 28 | return self 29 | } 30 | } 31 | 32 | //// 遵循协议以提供计算属性 33 | //extension AAChart: SerializableWithComputedProperties { 34 | // public func computedProperties() -> [String: Any] { 35 | // return [ 36 | // "nickname": nickname as Any 37 | // ] 38 | // } 39 | //} 40 | 41 | //遵循协议以提供计算属性 42 | extension AAOptions: AASerializableWithComputedProperties { 43 | public func computedProperties() -> [String: Any] { 44 | // return [ 45 | // "drilldown": drilldown?.toDic() as Any, 46 | // "boost": boost?.toDic() as Any 47 | // ] 48 | var dict = [String: Any]() 49 | if drilldown != nil { 50 | dict["drilldown"] = drilldown?.toDic() as Any 51 | } 52 | 53 | if boost != nil { 54 | dict["boost"] = boost?.toDic() as Any 55 | } 56 | 57 | return dict 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/AAOptionsCSV.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AAOptionsCSV.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2022/8/6. 6 | // 7 | 8 | import Foundation 9 | 10 | class AAOptionsCSV { 11 | 12 | public class var csvData: NSDictionary { 13 | getJsonCsvDataWithJsonFileName("bigHeatmapData") 14 | } 15 | 16 | private static func getJsonCsvDataWithJsonFileName(_ jsonFileName: String) -> NSDictionary { 17 | let path = Bundle.main.path(forResource: jsonFileName, ofType: "json") 18 | let url = URL(fileURLWithPath: path!) 19 | do { 20 | let data = try Data(contentsOf: url) 21 | let jsonData:Any = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.mutableContainers) 22 | let jsonArr = jsonData as! NSDictionary 23 | 24 | return jsonArr as! NSDictionary 25 | 26 | } catch let error as Error? { 27 | print("读取本地数据出现错误!",error ?? "WARNING!!!!") 28 | } 29 | return NSDictionary() 30 | } 31 | 32 | } 33 | 34 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/AAOptionsSeries.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AAOptionsSeries.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2020/11/10. 6 | // 7 | 8 | import UIKit 9 | 10 | class AAOptionsSeries { 11 | 12 | public class var packedbubbleSeries : [Any] { 13 | getJsonDataWithJsonFileName("packedbubbleSeries") 14 | } 15 | 16 | public class var streamgraphSeries : [Any] { 17 | getJsonDataWithJsonFileName("streamgraphSeries") 18 | } 19 | 20 | //https://www.jianshu.com/p/a4b2bd5deca6 21 | private static func getJsonDataWithJsonFileName(_ jsonFileName: String) -> [Any] { 22 | let path = Bundle.main.path(forResource: jsonFileName, ofType: "json") 23 | let url = URL(fileURLWithPath: path!) 24 | do { 25 | let data = try Data(contentsOf: url) 26 | let jsonData:Any = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.mutableContainers) 27 | let jsonArr = jsonData as! NSArray 28 | 29 | return jsonArr as! [Any] 30 | } catch let error as Error? { 31 | print("读取本地数据出现错误!",error ?? "WARNING!!!!") 32 | } 33 | return [Any]() 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/arcdiagram1Data.json: -------------------------------------------------------------------------------- 1 | [ 2 | ["Hamburg", "Stuttgart", 1], 3 | ["Hamburg", "Frankfurt", 1], 4 | ["Hamburg", "München", 1], 5 | ["Hannover", "Wien", 1], 6 | ["Hannover", "München", 1], 7 | ["Berlin", "Wien", 1], 8 | ["Berlin", "München", 1], 9 | ["Berlin", "Stuttgart", 1], 10 | ["Berlin", "Frankfurt", 1], 11 | ["Berlin", "Köln", 1], 12 | ["Berlin", "Düsseldorf", 1], 13 | ["München", "Düsseldorf", 1], 14 | ["München", "Wien", 1], 15 | ["München", "Frankfurt", 1], 16 | ["München", "Köln", 1], 17 | ["München", "Amsterdam", 1], 18 | ["Stuttgart", "Wien", 1], 19 | ["Frankfurt", "Wien", 1], 20 | ["Frankfurt", "Amsterdam", 1], 21 | ["Frankfurt", "Paris", 1], 22 | ["Frankfurt", "Budapest", 1], 23 | ["Düsseldorf", "Wien", 1], 24 | ["Düsseldorf", "Hamburg", 1], 25 | ["Amsterdam", "Paris", 1], 26 | ["Paris", "Brest", 1], 27 | ["Paris", "Nantes", 1], 28 | ["Paris", "Bayonne", 1], 29 | ["Paris", "Bordeaux", 1], 30 | ["Paris", "Toulouse", 1], 31 | ["Paris", "Montpellier", 1], 32 | ["Paris", "Marseille", 1], 33 | ["Paris", "Nice", 1], 34 | ["Paris", "Milano", 1], 35 | ["Nantes", "Nice", 1], 36 | ["Bordeaux", "Lyon", 1], 37 | ["Nantes", "Lyon", 1], 38 | ["Milano", "München", 1], 39 | ["Milano", "Roma", 1], 40 | ["Milano", "Bari", 1], 41 | ["Milano", "Napoli", 1], 42 | ["Milano", "Brindisi", 1], 43 | ["Milano", "Lamezia Terme", 1], 44 | ["Torino", "Roma", 1], 45 | ["Venezia", "Napoli", 1], 46 | ["Roma", "Bari", 1], 47 | ["Roma", "Catania", 1], 48 | ["Roma", "Brindisi", 1], 49 | ["Catania", "Milano", 1] 50 | ] 51 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/arcdiagram2Data.json: -------------------------------------------------------------------------------- 1 | [ 2 | ["Brazil", "Portugal", 5], 3 | ["Brazil", "France", 1], 4 | ["Brazil", "Spain", 1], 5 | ["Brazil", "England", 1], 6 | ["Canada", "Portugal", 1], 7 | ["Canada", "France", 5], 8 | ["Canada", "England", 1] 9 | ] 10 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/arcdiagram3Data.json: -------------------------------------------------------------------------------- 1 | [ 2 | ["Brazil", "Portugal", 5], 3 | ["Brazil", "France", 1], 4 | ["Brazil", "Spain", 1], 5 | ["Brazil", "England", 1], 6 | ["Canada", "Portugal", 1], 7 | ["Canada", "France", 5], 8 | ["Canada", "England", 1], 9 | ["Mexico", "Portugal", 1], 10 | ["Mexico", "France", 1], 11 | ["Mexico", "Spain", 5], 12 | ["Mexico", "England", 1], 13 | ["USA", "Portugal", 1], 14 | ["USA", "France", 1], 15 | ["USA", "Spain", 1], 16 | ["USA", "England", 5], 17 | ["Portugal", "Angola", 2], 18 | ["Portugal", "Senegal", 1], 19 | ["Portugal", "Morocco", 1], 20 | ["Portugal", "South Africa", 3], 21 | ["France", "Angola", 1], 22 | ["France", "Senegal", 3], 23 | ["France", "Mali", 3], 24 | ["France", "Morocco", 3], 25 | ["France", "South Africa", 1], 26 | ["Spain", "Senegal", 1], 27 | ["Spain", "Morocco", 3], 28 | ["Spain", "South Africa", 1], 29 | ["England", "Angola", 1], 30 | ["England", "Senegal", 1], 31 | ["England", "Morocco", 2], 32 | ["England", "South Africa", 7], 33 | ["South Africa", "China", 5], 34 | ["South Africa", "India", 1], 35 | ["South Africa", "Japan", 3], 36 | ["Angola", "China", 5], 37 | ["Angola", "India", 1], 38 | ["Angola", "Japan", 3], 39 | ["Senegal", "China", 5], 40 | ["Senegal", "India", 1], 41 | ["Senegal", "Japan", 3], 42 | ["Mali", "China", 5], 43 | ["Mali", "India", 1], 44 | ["Mali", "Japan", 3], 45 | ["Morocco", "China", 5], 46 | ["Morocco", "India", 1], 47 | ["Morocco", "Japan", 3], 48 | ["Japan", "Brazil", 1] 49 | ] 50 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/bellcurveData.json: -------------------------------------------------------------------------------- 1 | [3.5, 3, 3.2, 3.1, 3.6, 3.9, 3.4, 3.4, 2.9, 3.1, 3.7, 3.4, 3, 3, 4, 2 | 4.4, 3.9, 3.5, 3.8, 3.8, 3.4, 3.7, 3.6, 3.3, 3.4, 3, 3.4, 3.5, 3.4, 3.2, 3 | 3.1, 3.4, 4.1, 4.2, 3.1, 3.2, 3.5, 3.6, 3, 3.4, 3.5, 2.3, 3.2, 3.5, 3.8, 3, 4 | 3.8, 3.2, 3.7, 3.3, 3.2, 3.2, 3.1, 2.3, 2.8, 2.8, 3.3, 2.4, 2.9, 2.7, 2, 3, 5 | 2.2, 2.9, 2.9, 3.1, 3, 2.7, 2.2, 2.5, 3.2, 2.8, 2.5, 2.8, 2.9, 3, 2.8, 3, 6 | 2.9, 2.6, 2.4, 2.4, 2.7, 2.7, 3, 3.4, 3.1, 2.3, 3, 2.5, 2.6, 3, 2.6, 2.3, 7 | 2.7, 3, 2.9, 2.9, 2.5, 2.8, 3.3, 2.7, 3, 2.9, 3, 3, 2.5, 2.9, 2.5, 3.6, 8 | 3.2, 2.7, 3, 2.5, 2.8, 3.2, 3, 3.8, 2.6, 2.2, 3.2, 2.8, 2.8, 2.7, 3.3, 3.2, 9 | 2.8, 3, 2.8, 3, 2.8, 3.8, 2.8, 2.8, 2.6, 3, 3.4, 3.1, 3, 3.1, 3.1, 3.1, 2.7, 10 | 3.2, 3.3, 3, 2.5, 3, 3.4, 3] 11 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/columnpyramidData.json: -------------------------------------------------------------------------------- 1 | [ 2 | ["Pyramid of Khufu", 138.8], 3 | ["Pyramid of Khafre", 136.4], 4 | ["Red Pyramid", 104], 5 | ["Bent Pyramid", 101.1], 6 | ["Pyramid of the Sun", 75] 7 | ] 8 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/dependencywheelData.json: -------------------------------------------------------------------------------- 1 | [ 2 | ["Brazil", "Portugal", 5], 3 | ["Brazil", "France", 1], 4 | ["Brazil", "Spain", 1], 5 | ["Brazil", "England", 1], 6 | ["Canada", "Portugal", 1], 7 | ["Canada", "France", 5], 8 | ["Canada", "England", 1], 9 | ["Mexico", "Portugal", 1], 10 | ["Mexico", "France", 1], 11 | ["Mexico", "Spain", 5], 12 | ["Mexico", "England", 1], 13 | ["USA", "Portugal", 1], 14 | ["USA", "France", 1], 15 | ["USA", "Spain", 1], 16 | ["USA", "England", 5], 17 | ["Portugal", "Angola", 2], 18 | ["Portugal", "Senegal", 1], 19 | ["Portugal", "Morocco", 1], 20 | ["Portugal", "South Africa", 3], 21 | ["France", "Angola", 1], 22 | ["France", "Senegal", 3], 23 | ["France", "Mali", 3], 24 | ["France", "Morocco", 3], 25 | ["France", "South Africa", 1], 26 | ["Spain", "Senegal", 1], 27 | ["Spain", "Morocco", 3], 28 | ["Spain", "South Africa", 1], 29 | ["England", "Angola", 1], 30 | ["England", "Senegal", 1], 31 | ["England", "Morocco", 2], 32 | ["England", "South Africa", 7], 33 | ["South Africa", "China", 5], 34 | ["South Africa", "India", 1], 35 | ["South Africa", "Japan", 3], 36 | ["Angola", "China", 5], 37 | ["Angola", "India", 1], 38 | ["Angola", "Japan", 3], 39 | ["Senegal", "China", 5], 40 | ["Senegal", "India", 1], 41 | ["Senegal", "Japan", 3], 42 | ["Mali", "China", 5], 43 | ["Mali", "India", 1], 44 | ["Mali", "Japan", 3], 45 | ["Morocco", "China", 5], 46 | ["Morocco", "India", 1], 47 | ["Morocco", "Japan", 3], 48 | ["Japan", "Brazil", 1] 49 | ] 50 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/dumbbellData.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "Austria", 4 | "low": 69, 5 | "high": 82 6 | }, { 7 | "name": "Belgium", 8 | "low": 70, 9 | "high": 81 10 | }, { 11 | "name": "Bulgaria", 12 | "low": 69, 13 | "high": 75 14 | }, { 15 | "name": "Croatia", 16 | "low": 65, 17 | "high": 78 18 | }, { 19 | "name": "Cyprus", 20 | "low": 70, 21 | "high": 81 22 | }, { 23 | "name": "Czech Republic", 24 | "low": 70, 25 | "high": 79 26 | }, { 27 | "name": "Denmark", 28 | "low": 72, 29 | "high": 81 30 | }, { 31 | "name": "Estonia", 32 | "low": 68, 33 | "high": 78 34 | }, { 35 | "name": "Finland", 36 | "low": 69, 37 | "high": 81 38 | }, { 39 | "name": "France", 40 | "low": 70, 41 | "high": 83 42 | }, { 43 | "name": "Greece", 44 | "low": 68, 45 | "high": 81 46 | }, { 47 | "name": "Spain", 48 | "low": 69, 49 | "high": 83 50 | }, { 51 | "name": "Netherlands", 52 | "low": 73, 53 | "high": 82 54 | }, { 55 | "name": "Ireland", 56 | "low": 70, 57 | "high": 82 58 | }, { 59 | "name": "Lithuania", 60 | "low": 70, 61 | "high": 75 62 | }, { 63 | "name": "Luxembourg", 64 | "low": 68, 65 | "high": 83 66 | }, { 67 | "name": "Latvia", 68 | "low": 70, 69 | "high": 75 70 | }, { 71 | "name": "Malta", 72 | "low": 69, 73 | "high": 82 74 | }, { 75 | "name": "Germany", 76 | "low": 69, 77 | "high": 81 78 | }, { 79 | "name": "Poland", 80 | "low": 68, 81 | "high": 78 82 | }, { 83 | "name": "Portugal", 84 | "low": 63, 85 | "high": 81 86 | }, { 87 | "name": "Romania", 88 | "low": 66, 89 | "high": 75 90 | }, { 91 | "name": "Slovakia", 92 | "low": 70, 93 | "high": 77 94 | }, { 95 | "name": "Slovenia", 96 | "low": 69, 97 | "high": 81 98 | }, { 99 | "name": "Sweden", 100 | "low": 73, 101 | "high": 82 102 | }, { 103 | "name": "Hungary", 104 | "low": 68, 105 | "high": 76 106 | }, { 107 | "name": "Italy", 108 | "low": 69, 109 | "high": 83 110 | }, { 111 | "name": "UK", 112 | "low": 71, 113 | "high": 81 114 | } 115 | ] 116 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/eulerData.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "sets": ["A"], 4 | "value": 4, 5 | "name": "Euler diagrams", 6 | "description": "An Euler diagram is a diagrammatic means of representing sets and their relationships. Unlike Venn diagrams, which show all possible relations between different sets, the Euler diagram shows only relevant relationships." 7 | }, { 8 | "sets": ["B"], 9 | "value": 1, 10 | "name": "Venn diagrams", 11 | "description": "In Venn diagrams the curves are overlapped in every possible way, showing all possible relations between the sets. They are thus a special case of Euler diagrams, which do not necessarily show all relations" 12 | }, { 13 | "sets": ["A", "B"], 14 | "value": 1 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/heatmapData.json: -------------------------------------------------------------------------------- 1 | [ 2 | [0, 0, 10], 3 | [0, 1, 19], 4 | [0, 2, 8], 5 | [0, 3, 24], 6 | [0, 4, 67], 7 | [1, 0, 92], 8 | [1, 1, 58], 9 | [1, 2, 78], 10 | [1, 3, 117], 11 | [1, 4, 48], 12 | [2, 0, 35], 13 | [2, 1, 15], 14 | [2, 2, 123], 15 | [2, 3, 64], 16 | [2, 4, 52], 17 | [3, 0, 72], 18 | [3, 1, 132], 19 | [3, 2, 114], 20 | [3, 3, 19], 21 | [3, 4, 16], 22 | [4, 0, 38], 23 | [4, 1, 5], 24 | [4, 2, 8], 25 | [4, 3, 117], 26 | [4, 4, 115], 27 | [5, 0, 88], 28 | [5, 1, 32], 29 | [5, 2, 12], 30 | [5, 3, 6], 31 | [5, 4, 120], 32 | [6, 0, 13], 33 | [6, 1, 44], 34 | [6, 2, 88], 35 | [6, 3, 98], 36 | [6, 4, 96], 37 | [7, 0, 31], 38 | [7, 1, 1], 39 | [7, 2, 82], 40 | [7, 3, 32], 41 | [7, 4, 30], 42 | [8, 0, 85], 43 | [8, 1, 97], 44 | [8, 2, 123], 45 | [8, 3, 64], 46 | [8, 4, 84], 47 | [9, 0, 47], 48 | [9, 1, 114], 49 | [9, 2, 31], 50 | [9, 3, 48], 51 | [9, 4, 91] 52 | ] 53 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/itemData.json: -------------------------------------------------------------------------------- 1 | [ 2 | ["The Left", 69, "#BE3075", "DIE LINKE"], 3 | ["Social Democratic Party", 153, "#EB001F", "SPD"], 4 | ["Alliance 90/The Greens", 67, "#64A12D", "GRÜNE"], 5 | ["Free Democratic Party", 80, "#FFED00", "FDP"], 6 | ["Christian Democratic Union", 200, "#000000", "CDU"], 7 | ["Christian Social Union in Bavaria", 46, "#008AC5", "CSU"], 8 | ["Alternative for Germany", 94, "#009EE0", "AfD"] 9 | ] 10 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/lollipopData.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "China", 4 | "low": 1427647786 5 | }, { 6 | "name": "India", 7 | "low": 1352642280 8 | }, { 9 | "name": "United States", 10 | "low": 327096265 11 | }, { 12 | "name": "Indonesia", 13 | "low": 267670543 14 | }, { 15 | "name": "Pakistan", 16 | "low": 212228286 17 | }, { 18 | "name": "Brazil", 19 | "low": 209469323 20 | }, { 21 | "name": "Nigeria", 22 | "low": 195874683 23 | }, { 24 | "name": "Bangladesh", 25 | "low": 161376708 26 | }, { 27 | "name": "Russia", 28 | "low": 145734038 29 | }, { 30 | "name": "Mexico", 31 | "low": 126190788 32 | } 33 | ] 34 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/networkgraphData.json: -------------------------------------------------------------------------------- 1 | [ 2 | ["Proto Indo-European", "Balto-Slavic"], 3 | ["Proto Indo-European", "Germanic"], 4 | ["Proto Indo-European", "Celtic"], 5 | ["Proto Indo-European", "Italic"], 6 | ["Proto Indo-European", "Hellenic"], 7 | ["Proto Indo-European", "Anatolian"], 8 | ["Proto Indo-European", "Indo-Iranian"], 9 | ["Proto Indo-European", "Tocharian"], 10 | ["Indo-Iranian", "Dardic"], 11 | ["Indo-Iranian", "Indic"], 12 | ["Indo-Iranian", "Iranian"], 13 | ["Iranian", "Old Persian"], 14 | ["Old Persian", "Middle Persian"], 15 | ["Indic", "Sanskrit"], 16 | ["Italic", "Osco-Umbrian"], 17 | ["Italic", "Latino-Faliscan"], 18 | ["Latino-Faliscan", "Latin"], 19 | ["Celtic", "Brythonic"], 20 | ["Celtic", "Goidelic"], 21 | ["Germanic", "North Germanic"], 22 | ["Germanic", "West Germanic"], 23 | ["Germanic", "East Germanic"], 24 | ["North Germanic", "Old Norse"], 25 | ["North Germanic", "Old Swedish"], 26 | ["North Germanic", "Old Danish"], 27 | ["West Germanic", "Old English"], 28 | ["West Germanic", "Old Frisian"], 29 | ["West Germanic", "Old Dutch"], 30 | ["West Germanic", "Old Low German"], 31 | ["West Germanic", "Old High German"], 32 | ["Old Norse", "Old Icelandic"], 33 | ["Old Norse", "Old Norwegian"], 34 | ["Old Norwegian", "Middle Norwegian"], 35 | ["Old Swedish", "Middle Swedish"], 36 | ["Old Danish", "Middle Danish"], 37 | ["Old English", "Middle English"], 38 | ["Old Dutch", "Middle Dutch"], 39 | ["Old Low German", "Middle Low German"], 40 | ["Old High German", "Middle High German"], 41 | ["Balto-Slavic", "Baltic"], 42 | ["Balto-Slavic", "Slavic"], 43 | ["Slavic", "East Slavic"], 44 | ["Slavic", "West Slavic"], 45 | ["Slavic", "South Slavic"], 46 | ["Proto Indo-European", "Phrygian"], 47 | ["Proto Indo-European", "Armenian"], 48 | ["Proto Indo-European", "Albanian"], 49 | ["Proto Indo-European", "Thracian"], 50 | ["Tocharian", "Tocharian A"], 51 | ["Tocharian", "Tocharian B"], 52 | ["Anatolian", "Hittite"], 53 | ["Anatolian", "Palaic"], 54 | ["Anatolian", "Luwic"], 55 | ["Anatolian", "Lydian"], 56 | ["Iranian", "Balochi"], 57 | ["Iranian", "Kurdish"], 58 | ["Iranian", "Pashto"], 59 | ["Iranian", "Sogdian"], 60 | ["Old Persian", "Pahlavi"], 61 | ["Middle Persian", "Persian"], 62 | ["Hellenic", "Greek"], 63 | ["Dardic", "Dard"], 64 | ["Sanskrit", "Sindhi"], 65 | ["Sanskrit", "Romani"], 66 | ["Sanskrit", "Urdu"], 67 | ["Sanskrit", "Hindi"], 68 | ["Sanskrit", "Bihari"], 69 | ["Sanskrit", "Assamese"], 70 | ["Sanskrit", "Bengali"], 71 | ["Sanskrit", "Marathi"], 72 | ["Sanskrit", "Gujarati"], 73 | ["Sanskrit", "Punjabi"], 74 | ["Sanskrit", "Sinhalese"], 75 | ["Osco-Umbrian", "Umbrian"], 76 | ["Osco-Umbrian", "Oscan"], 77 | ["Latino-Faliscan", "Faliscan"], 78 | ["Latin", "Portugese"], 79 | ["Latin", "Spanish"], 80 | ["Latin", "French"], 81 | ["Latin", "Romanian"], 82 | ["Latin", "Italian"], 83 | ["Latin", "Catalan"], 84 | ["Latin", "Franco-Provençal"], 85 | ["Latin", "Rhaeto-Romance"], 86 | ["Brythonic", "Welsh"], 87 | ["Brythonic", "Breton"], 88 | ["Brythonic", "Cornish"], 89 | ["Brythonic", "Cuymbric"], 90 | ["Goidelic", "Modern Irish"], 91 | ["Goidelic", "Scottish Gaelic"], 92 | ["Goidelic", "Manx"], 93 | ["East Germanic", "Gothic"], 94 | ["Middle Low German", "Low German"], 95 | ["Middle High German", "(High) German"], 96 | ["Middle High German", "Yiddish"], 97 | ["Middle English", "English"], 98 | ["Middle Dutch", "Hollandic"], 99 | ["Middle Dutch", "Flemish"], 100 | ["Middle Dutch", "Dutch"], 101 | ["Middle Dutch", "Limburgish"], 102 | ["Middle Dutch", "Brabantian"], 103 | ["Middle Dutch", "Rhinelandic"], 104 | ["Old Frisian", "Frisian"], 105 | ["Middle Danish", "Danish"], 106 | ["Middle Swedish", "Swedish"], 107 | ["Middle Norwegian", "Norwegian"], 108 | ["Old Norse", "Faroese"], 109 | ["Old Icelandic", "Icelandic"], 110 | ["Baltic", "Old Prussian"], 111 | ["Baltic", "Lithuanian"], 112 | ["Baltic", "Latvian"], 113 | ["West Slavic", "Polish"], 114 | ["West Slavic", "Slovak"], 115 | ["West Slavic", "Czech"], 116 | ["West Slavic", "Wendish"], 117 | ["East Slavic", "Bulgarian"], 118 | ["East Slavic", "Old Church Slavonic"], 119 | ["East Slavic", "Macedonian"], 120 | ["East Slavic", "Serbo-Croatian"], 121 | ["East Slavic", "Slovene"], 122 | ["South Slavic", "Russian"], 123 | ["South Slavic", "Ukrainian"], 124 | ["South Slavic", "Belarusian"], 125 | ["South Slavic", "Rusyn"] 126 | ] 127 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/organizationData.json: -------------------------------------------------------------------------------- 1 | [ 2 | ["股东", "董事会"], 3 | ["董事会", "CEO"], 4 | ["CEO", "CTO"], 5 | ["CEO", "CPO"], 6 | ["CEO", "CSO"], 7 | ["CEO", "CMO"], 8 | ["CEO", "HR"], 9 | ["CTO", "Product"], 10 | ["CTO", "Web"], 11 | ["CSO", "Sales"], 12 | ["CMO", "Market"] 13 | ] 14 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/organizationNodesData.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "Shareholders" 4 | }, 5 | { 6 | "id": "Board" 7 | }, 8 | { 9 | "id": "CEO", 10 | "title": "CEO", 11 | "name": "Grethe Hjetland", 12 | "image": "https://wp-assets.highcharts.com/www-highcharts-com/blog/wp-content/uploads/2018/11/12132317/Grethe.jpg" 13 | }, 14 | { 15 | "id": "HR", 16 | "title": "HR/CFO", 17 | "name": "Anne Jorunn Fjærestad", 18 | "color": "#007ad0", 19 | "image": "https://wp-assets.highcharts.com/www-highcharts-com/blog/wp-content/uploads/2018/11/12132314/AnneJorunn.jpg", 20 | "column": 3, 21 | "offset": "75%" 22 | }, 23 | { 24 | "id": "CTO", 25 | "title": "CTO", 26 | "name": "Christer Vasseng", 27 | "column": 4, 28 | "image": "https://wp-assets.highcharts.com/www-highcharts-com/blog/wp-content/uploads/2018/11/12140620/Christer.jpg", 29 | "layout": "hanging" 30 | }, 31 | { 32 | "id": "CPO", 33 | "title": "CPO", 34 | "name": "Torstein Hønsi", 35 | "column": 4, 36 | "image": "https://wp-assets.highcharts.com/www-highcharts-com/blog/wp-content/uploads/2018/11/12131849/Torstein1.jpg" 37 | }, 38 | { 39 | "id": "CSO", 40 | "title": "CSO", 41 | "name": "Anita Nesse", 42 | "column": 4, 43 | "image": "https://wp-assets.highcharts.com/www-highcharts-com/blog/wp-content/uploads/2018/11/12132313/Anita.jpg", 44 | "layout": "hanging" 45 | }, 46 | { 47 | "id": "CMO", 48 | "title": "CMO", 49 | "name": "Vidar Brekke", 50 | "column": 4, 51 | "image": "https://wp-assets.highcharts.com/www-highcharts-com/blog/wp-content/uploads/2018/11/13105551/Vidar.jpg", 52 | "layout": "hanging" 53 | }, 54 | { 55 | "id": "Product", 56 | "name": "产品研发" 57 | }, 58 | { 59 | "id": "Web", 60 | "name": "运维", 61 | "description": "网站开发,系统维护" 62 | }, 63 | { 64 | "id": "Sales", 65 | "name": "销售部" 66 | }, 67 | { 68 | "id": "Market", 69 | "name": "市场部" 70 | } 71 | ] 72 | 73 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/sankeyData.json: -------------------------------------------------------------------------------- 1 | [ 2 | ["巴西", "葡萄牙", 5], 3 | ["巴西", "法国", 1], 4 | ["巴西", "西班牙", 1], 5 | ["巴西", "英国", 1], 6 | ["加拿大", "葡萄牙", 1], 7 | ["加拿大", "法国", 5], 8 | ["加拿大", "英国", 1], 9 | ["墨西哥", "葡萄牙", 1], 10 | ["墨西哥", "法国", 1], 11 | ["墨西哥", "西班牙", 5], 12 | ["墨西哥", "英国", 1], 13 | ["美国", "葡萄牙", 1], 14 | ["美国", "法国", 1], 15 | ["美国", "西班牙", 1], 16 | ["美国", "英国", 5], 17 | ["葡萄牙", "安哥拉", 2], 18 | ["葡萄牙", "塞内加尔", 1], 19 | ["葡萄牙", "摩洛哥", 1], 20 | ["葡萄牙", "南非", 3], 21 | ["法国", "安哥拉", 1], 22 | ["法国", "塞内加尔", 3], 23 | ["法国", "马里", 3], 24 | ["法国", "摩洛哥", 3], 25 | ["法国", "南非", 1], 26 | ["西班牙", "塞内加尔", 1], 27 | ["西班牙", "摩洛哥", 3], 28 | ["西班牙", "南非", 1], 29 | ["英国", "安哥拉", 1], 30 | ["英国", "塞内加尔", 1], 31 | ["英国", "摩洛哥", 2], 32 | ["英国", "南非", 7], 33 | ["南非", "中国", 5], 34 | ["南非", "印度", 1], 35 | ["南非", "日本", 3], 36 | ["安哥拉", "中国", 5], 37 | ["安哥拉", "印度", 1], 38 | ["安哥拉", "日本", 3], 39 | ["塞内加尔", "中国", 5], 40 | ["塞内加尔", "印度", 1], 41 | ["塞内加尔", "日本", 3], 42 | ["马里", "中国", 5], 43 | ["马里", "印度", 1], 44 | ["马里", "日本", 3], 45 | ["摩洛哥", "中国", 5], 46 | ["摩洛哥", "印度", 1], 47 | ["摩洛哥", "日本", 3] 48 | ] 49 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/simpleDependencyWheelData.json: -------------------------------------------------------------------------------- 1 | [ 2 | ["Brazil", "Russia", 2524], 3 | ["Brazil", "India", 4115], 4 | ["Brazil", "China", 45738], 5 | ["Brazil", "South Africa", 1401], 6 | ["Russia", "Brazil", 2021], 7 | ["Russia", "India", 5564], 8 | ["Russia", "China", 32229], 9 | ["Russia", "South Africa", 196], 10 | ["India", "Brazil", 2484], 11 | ["India", "Russia", 2398], 12 | ["India", "China", 11757], 13 | ["India", "South Africa", 3554], 14 | ["China", "Brazil", 23364], 15 | ["China", "India", 61311], 16 | ["China", "South Africa", 12848], 17 | ["China", "Russia", 38105], 18 | ["South Africa", "Russia", 255], 19 | ["South Africa", "Brazil", 336], 20 | ["South Africa", "India", 5814], 21 | ["South Africa", "China", 22491] 22 | ] 23 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/simpleTilemapData.json: -------------------------------------------------------------------------------- 1 | [ 2 | [3, 3, "Step 1", 3 | "First step towards the main idea. Describe the starting point of the situation."], 4 | [4, 3, "Step 2", 5 | "Describe where to move next in a short term time perspective."], 6 | [5, 4, "Step 3", 7 | "This can be a larger milestone, after the initial steps have been taken."], 8 | [6, 3, "Step 4", 9 | "Evaluate progress and readjust the course of the project."], 10 | [7, 3, "Step 5", 11 | "At this point, major progress should have been made, and we should be well on our way to implementing the main idea."], 12 | [6, 2, "Step 6", 13 | "Second evaluation and readjustment step. Implement final changes."], 14 | [5, 2, "Step 7", 15 | "Testing and final verification step."], 16 | [4, 2, "Step 8", 17 | "Iterate after final testing and finalize implementation of the idea."] 18 | ] -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/timelineData.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "首次生物", 4 | "label": "1951:第一批太空犬", 5 | "description": "1951年7月22日第一批狗(Dezik 和 Tsygan)送上太空" 6 | }, { 7 | "name": "人造卫星", 8 | "label": "1957: 第一颗人造卫星", 9 | "description": "1957年十月4日,发射第一颗人造卫星,第一次接收到来自太空的信号" 10 | }, { 11 | "name": "载人航天", 12 | "label": "1961:首次载人航天(尤里加加林)", 13 | "description": "首次载人航天(尤里加加林),首次载人轨道飞行" 14 | }, { 15 | "name": "登陆月球", 16 | "label": "1969:人类首次登陆月球", 17 | "description": "First human on the Moon, and first space launch from a celestial body other than the Earth. First sample return from the Moon" 18 | }, { 19 | "name": "空间站", 20 | "label": "1971: 第一个太空空间站", 21 | "description": "Salyut 1 was the first space station of any kind, launched into low Earth orbit by the Soviet Union on April 19, 1971." 22 | }, { 23 | "name": "阿波罗-联盟号试验计划", 24 | "label": "1975: First multinational manned mission", 25 | "description": "The mission included both joint and separate scientific experiments, and provided useful engineering experience for future joint US–Russian space flights, such as the Shuttle–Mir Program and the International Space Station." 26 | } 27 | ] 28 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/treemapWithColorAxisData.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "A", 4 | "value": 6, 5 | "color": "url(#highcharts-default-pattern-0)", 6 | "colorValue": 1 7 | }, { 8 | "name": "B", 9 | "value": 6, 10 | "color": "url(#highcharts-default-pattern-1)", 11 | "colorValue": 2 12 | }, { 13 | "name": "C", 14 | "value": 4, 15 | "color": "url(#highcharts-default-pattern-2)", 16 | "colorValue": 3 17 | }, { 18 | "name": "D", 19 | "value": 3, 20 | "color": "url(#highcharts-default-pattern-3)", 21 | "colorValue": 4 22 | }, { 23 | "name": "E", 24 | "value": 2, 25 | "color": "url(#highcharts-default-pattern-4)", 26 | "colorValue": 5 27 | }, { 28 | "name": "F", 29 | "value": 2, 30 | "color": "url(#highcharts-default-pattern-5)", 31 | "colorValue": 6 32 | }, { 33 | "name": "G", 34 | "value": 1, 35 | "color": "url(#highcharts-default-pattern-6)", 36 | "colorValue": 7 37 | } 38 | ] 39 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/treemapWithLevelsData.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "id": "A", 4 | "name": "苹果", 5 | "color": "#EC2500" 6 | }, { 7 | "id": "B", 8 | "name": "香蕉", 9 | "color": "#ECE100" 10 | }, { 11 | "id": "O", 12 | "name": "橘子", 13 | "color": "#EC9800" 14 | }, { 15 | "name": "小张", 16 | "parent": "A", 17 | "value": 5 18 | }, { 19 | "name": "小彭", 20 | "parent": "A", 21 | "value": 3 22 | }, { 23 | "name": "小潘", 24 | "parent": "A", 25 | "value": 4 26 | }, { 27 | "name": "小张", 28 | "parent": "B", 29 | "value": 4 30 | }, { 31 | "name": "小彭", 32 | "parent": "B", 33 | "value": 10 34 | }, { 35 | "name": "小潘", 36 | "parent": "B", 37 | "value": 1 38 | }, { 39 | "name": "小张", 40 | "parent": "O", 41 | "value": 1 42 | }, { 43 | "name": "小彭", 44 | "parent": "O", 45 | "value": 3 46 | }, { 47 | "name": "小潘", 48 | "parent": "O", 49 | "value": 3 50 | }, { 51 | "name": "阿苏", 52 | "parent": "wiki", 53 | "value": 2, 54 | "color": "#9EDE00" 55 | } 56 | ] 57 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/variablepieData.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "name": "西班牙", 4 | "color": "url(#highcharts-default-pattern-0)", 5 | "y": 505370, 6 | "z": 92.9 7 | }, { 8 | "name": "法国", 9 | "color": "url(#highcharts-default-pattern-1)", 10 | "y": 551500, 11 | "z": 118.7 12 | }, { 13 | "name": "波兰", 14 | "color": "url(#highcharts-default-pattern-2)", 15 | "y": 312685, 16 | "z": 124.6 17 | }, { 18 | "name": "捷克共和国", 19 | "color": "url(#highcharts-default-pattern-3)", 20 | "y": 78867, 21 | "z": 137.5 22 | }, { 23 | "name": "意大利", 24 | "color": "url(#highcharts-default-pattern-4)", 25 | "y": 301340, 26 | "z": 201.8 27 | }, { 28 | "name": "瑞士", 29 | "color": "url(#highcharts-default-pattern-5)", 30 | "y": 41277, 31 | "z": 214.5 32 | }, { 33 | "name": "德国", 34 | "color": "url(#highcharts-default-pattern-6)", 35 | "y": 357022, 36 | "z": 235.6 37 | } 38 | ] 39 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/variwideData.json: -------------------------------------------------------------------------------- 1 | [ 2 | ["挪威", 50.2, 335504], 3 | ["丹麦", 42, 277339], 4 | ["比利时", 39.2, 421611], 5 | ["瑞典", 38, 462057], 6 | ["法国", 35.6, 2228857], 7 | ["荷兰", 34.3, 702641], 8 | ["芬兰", 33.2, 215615], 9 | ["德国", 33.0, 3144050], 10 | ["奥地利", 32.7, 349344], 11 | ["爱尔兰", 30.4, 275567], 12 | ["意大利", 27.8, 1672438], 13 | ["英国", 26.7, 2366911], 14 | ["西班牙", 21.3, 1113851], 15 | ["希腊", 14.2, 175887], 16 | ["葡萄牙", 13.7, 184933], 17 | ["捷克共和国", 10.2, 176564], 18 | ["波兰", 8.6, 424269], 19 | ["罗马尼亚", 5.5, 169578] 20 | ] 21 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/vennData.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "sets": ["Good"], 4 | "value": 2 5 | }, { 6 | "sets": ["Fast"], 7 | "value": 2 8 | }, { 9 | "sets": ["Cheap"], 10 | "value": 2 11 | }, { 12 | "sets": ["Good", "Fast"], 13 | "value": 1, 14 | "name": "More expensive" 15 | }, { 16 | "sets": ["Good", "Cheap"], 17 | "value": 1, 18 | "name": "Will take time to deliver" 19 | }, { 20 | "sets": ["Fast", "Cheap"], 21 | "value": 1, 22 | "name": "Not the best quality" 23 | }, { 24 | "sets": ["Fast", "Cheap", "Good"], 25 | "value": 1, 26 | "name": "They are dreaming" 27 | } 28 | ] 29 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/volinPlotElement1Data.json: -------------------------------------------------------------------------------- 1 | [ 2 | [47, 5.608535227799803e-11], 3 | [48, 1.372407067436998e-8], 4 | [49, 0.0000012356924405721627], 5 | [50, 0.0000409917113448592], 6 | [51, 0.0005057902880102527], 7 | [52, 0.0024790321383763515], 8 | [53, 0.006672813041359025], 9 | [54, 0.015635031430467725], 10 | [55, 0.02259364291312416], 11 | [56, 0.01344236488178583], 12 | [57, 0.002991504270506708], 13 | [58, 0.0002454699433028564], 14 | [59, 0.000007412191665896888], 15 | [60, 8.234147287550304e-8], 16 | [61, 3.365948487844305e-10], 17 | [62, 5.6676575246716064e-11], 18 | [63, 1.378192736351844e-8], 19 | [64, 0.0000012505948888979913], 20 | [65, 0.00004251599284369339], 21 | [66, 0.0005728216060598633], 22 | [67, 0.003852828500580922], 23 | [68, 0.019927884649780687], 24 | [69, 0.07350237724179146], 25 | [70, 0.14144741144263853], 26 | [71, 0.16075870428789982], 27 | [72, 0.15676850099064582], 28 | [73, 0.13084487380374604], 29 | [74, 0.08346512415283565], 30 | [75, 0.05639598449124563], 31 | [76, 0.039864097863405355], 32 | [77, 0.022790431719549236], 33 | [78, 0.012011758158727093], 34 | [79, 0.01064640861932188], 35 | [80, 0.014449220747767763], 36 | [81, 0.013747629555726735], 37 | [82, 0.01317397847699511], 38 | [83, 0.018550040743350208], 39 | [84, 0.032708960068479676], 40 | [85, 0.054173265126786545], 41 | [86, 0.06482550397827902], 42 | [87, 0.06204350204053542], 43 | [88, 0.06779006849698278], 44 | [89, 0.09502794502566415], 45 | [90, 0.12520786369753706], 46 | [91, 0.12876410912856237], 47 | [92, 0.1295199598786729], 48 | [93, 0.13704746319593997], 49 | [94, 0.14718449129408478], 50 | [95, 0.15408158612826592], 51 | [96, 0.1365084578198678], 52 | [97, 0.11047040318043161], 53 | [98, 0.08508481589742302], 54 | [99, 0.07277154071987774], 55 | [100, 0.07919601341247737], 56 | [101, 0.06649595899224524], 57 | [102, 0.04791740961016811], 58 | [103, 0.03806852586791209], 59 | [104, 0.03408065271481093], 60 | [105, 0.02822403217458879], 61 | [106, 0.017973359383565434], 62 | [107, 0.01262602934702141], 63 | [108, 0.011262419040580134], 64 | [109, 0.009478587683679656], 65 | [110, 0.008404044403162792], 66 | [111, 0.004550219881361795], 67 | [112, 0.0009992407967064237], 68 | [113, 0.00008184624321178402], 69 | [114, 0.000002470824114786898], 70 | [115, 2.744729819042502e-8] 71 | ] 72 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/volinPlotElement2Data.json: -------------------------------------------------------------------------------- 1 | [ 2 | [38, 0], 3 | [39, 0], 4 | [40, 0], 5 | [41, 0], 6 | [42, 0], 7 | [43, 1.7398814086959525e-10], 8 | [44, 4.2738095400258076e-8], 9 | [45, 0.000003887437286771067], 10 | [46, 0.0001323598214453675], 11 | [47, 0.001732535403876214], 12 | [48, 0.00922734792388576], 13 | [49, 0.021768546189023814], 14 | [50, 0.024012929915311995], 15 | [51, 0.011979910355387695], 16 | [52, 0.0033388294748258334], 17 | [53, 0.005227646441141197], 18 | [54, 0.013771532251947839], 19 | [55, 0.02919339926294712], 20 | [56, 0.07570390197742677], 21 | [57, 0.13365103542847676], 22 | [58, 0.13076621964804375], 23 | [59, 0.1078097770084547], 24 | [60, 0.09010677069685188], 25 | [61, 0.056582402708003965], 26 | [62, 0.03308468727355079], 27 | [63, 0.023455701911044388], 28 | [64, 0.02457030480282277], 29 | [65, 0.03632399183590655], 30 | [66, 0.052880667866068654], 31 | [67, 0.07723712616722567], 32 | [68, 0.10112277607441206], 33 | [69, 0.12481435329503127], 34 | [70, 0.15172074777005065], 35 | [71, 0.1672892277665827], 36 | [72, 0.18246452053632298], 37 | [73, 0.1755546923253718], 38 | [74, 0.1838775533940472], 39 | [75, 0.20966992614184968], 40 | [76, 0.18927036028023367], 41 | [77, 0.12351552590851589], 42 | [78, 0.07196164152893701], 43 | [79, 0.056531488980089674], 44 | [80, 0.0534323580717955], 45 | [81, 0.04235686946541823], 46 | [82, 0.029216384766772643], 47 | [83, 0.029091581174119197], 48 | [84, 0.03132016604603416], 49 | [85, 0.031774947357177896], 50 | [86, 0.02920414463847989], 51 | [87, 0.017870932795005387], 52 | [88, 0.007443733922222755], 53 | [89, 0.007878551612935955], 54 | [90, 0.011467441221575675], 55 | [91, 0.006915425022752088], 56 | [92, 0.0015426205427402709], 57 | [93, 0.00012662432753104478], 58 | [94, 0.0000038237208668521435], 59 | [95, 4.2477700493199295e-8] 60 | ] 61 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/windbarbData.json: -------------------------------------------------------------------------------- 1 | [ 2 | [9.8, 177.9], 3 | [10.1, 177.2], 4 | [11.3, 179.7], 5 | [10.9, 175.5], 6 | [9.3, 159.9], 7 | [8.8, 159.6], 8 | [7.8, 162.6], 9 | [5.6, 186.2], 10 | [6.8, 146.0], 11 | [6.4, 139.9], 12 | [3.1, 180.2], 13 | [4.3, 177.6], 14 | [5.3, 191.8], 15 | [6.3, 173.1], 16 | [7.7, 140.2], 17 | [8.5, 136.1], 18 | [9.4, 142.9], 19 | [10.0, 140.4], 20 | [5.3, 142.1], 21 | [3.8, 141.0], 22 | [3.3, 116.5], 23 | [1.5, 327.5], 24 | [0.1, 1.1], 25 | [1.2, 11.1] 26 | ] 27 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/DataSource/DataJsonFiles/wordcloudData.json: -------------------------------------------------------------------------------- 1 | [ 2 | {"name":"Lorem", "weight":1}, 3 | {"name":"ipsum", "weight":1}, 4 | {"name":"dolor", "weight":1}, 5 | {"name":"sit", "weight":2}, 6 | {"name":"amet", "weight":2}, 7 | {"name":"consectetur", "weight":2}, 8 | {"name":"adipiscing", "weight":1}, 9 | {"name":"elit", "weight":2}, 10 | {"name":"Aenean", "weight":1}, 11 | {"name":"bibendum", "weight":1}, 12 | {"name":"erat", "weight":3}, 13 | {"name":"ac", "weight":4}, 14 | {"name":"justo", "weight":2}, 15 | {"name":"sollicitudin", "weight":2}, 16 | {"name":"quis", "weight":1}, 17 | {"name":"lacinia", "weight":2}, 18 | {"name":"ligula", "weight":1}, 19 | {"name":"fringilla", "weight":1}, 20 | {"name":"Pellentesque", "weight":1}, 21 | {"name":"hendrerit", "weight":2}, 22 | {"name":"nisi", "weight":1}, 23 | {"name":"vitae", "weight":3}, 24 | {"name":"posuere", "weight":2}, 25 | {"name":"condimentum", "weight":2}, 26 | {"name":"lectus", "weight":1}, 27 | {"name":"urna", "weight":1}, 28 | {"name":"accumsan", "weight":2}, 29 | {"name":"libero", "weight":1}, 30 | {"name":"rutrum", "weight":1}, 31 | {"name":"commodo", "weight":1}, 32 | {"name":"mi", "weight":2}, 33 | {"name":"lacus", "weight":1}, 34 | {"name":"pretium", "weight":5}, 35 | {"name":"Phasellus", "weight":1}, 36 | {"name":"ultrices", "weight":1}, 37 | {"name":"sed", "weight":1}, 38 | {"name":"semper", "weight":1}, 39 | {"name":"Praesent", "weight":3}, 40 | {"name":"ut", "weight":3}, 41 | {"name":"tristique", "weight":2}, 42 | {"name":"magna", "weight":1}, 43 | {"name":"Donec", "weight":1}, 44 | {"name":"nisl", "weight":1}, 45 | {"name":"tellus", "weight":3}, 46 | {"name":"sagittis", "weight":1}, 47 | {"name":"tempus", "weight":1}, 48 | {"name":"eget", "weight":3}, 49 | {"name":"Sed", "weight":1}, 50 | {"name":"ornare", "weight":2}, 51 | {"name":"gravida", "weight":1}, 52 | {"name":"Curabitur", "weight":2}, 53 | {"name":"iaculis", "weight":1}, 54 | {"name":"metus", "weight":1}, 55 | {"name":"purus", "weight":2}, 56 | {"name":"est", "weight":1}, 57 | {"name":"laoreet", "weight":1}, 58 | {"name":"Quisque", "weight":1}, 59 | {"name":"augue", "weight":1}, 60 | {"name":"eros", "weight":3}, 61 | {"name":"malesuada", "weight":1}, 62 | {"name":"facilisis", "weight":2}, 63 | {"name":"mauris", "weight":1}, 64 | {"name":"Mauris", "weight":1}, 65 | {"name":"molestie", "weight":1}, 66 | {"name":"nulla", "weight":1}, 67 | {"name":"quam", "weight":1}, 68 | {"name":"placerat", "weight":1}, 69 | {"name":"sem", "weight":1}, 70 | {"name":"in", "weight":1}, 71 | {"name":"mattis", "weight":1}, 72 | {"name":"non", "weight":2}, 73 | {"name":"odio", "weight":2}, 74 | {"name":"Nunc", "weight":1}, 75 | {"name":"aliquet", "weight":1}, 76 | {"name":"nec", "weight":3}, 77 | {"name":"auctor", "weight":1}, 78 | {"name":"congue", "weight":1}, 79 | {"name":"sapien", "weight":2}, 80 | {"name":"dictum", "weight":1}, 81 | {"name":"massa", "weight":2}, 82 | {"name":"fermentum", "weight":1}, 83 | {"name":"luctus", "weight":1}, 84 | {"name":"et", "weight":2}, 85 | {"name":"nunc", "weight":1}, 86 | {"name":"In", "weight":1}, 87 | {"name":"consequat", "weight":2}, 88 | {"name":"interdum", "weight":1}, 89 | {"name":"Ut", "weight":1}, 90 | {"name":"neque", "weight":1}, 91 | {"name":"dui", "weight":1}, 92 | {"name":"maximus", "weight":1}, 93 | {"name":"id", "weight":1}, 94 | {"name":"Nullam", "weight":1}, 95 | {"name":"vel", "weight":1}, 96 | {"name":"lorem", "weight":1}, 97 | {"name":"", "weight":1} 98 | ] 99 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/ViewController/AABubbleChartVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AABubbleChartVC.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2022/10/15. 6 | // 7 | 8 | import UIKit 9 | 10 | class AABubbleChartVC: AABaseChartVC { 11 | 12 | override func viewDidLoad() { 13 | super.viewDidLoad() 14 | 15 | } 16 | 17 | override func chartConfigurationWithSelectedIndex(_ selectedIndex: Int) -> Any? { 18 | switch (selectedIndex) { 19 | case 0: return AABubbleChartComposer.packedbubbleChart() 20 | case 1: return AABubbleChartComposer.packedbubbleSplitChart() 21 | case 2: return AABubbleChartComposer.packedbubbleSpiralChart() 22 | case 3: return AABubbleChartComposer.eulerChart() 23 | case 4: return AABubbleChartComposer.vennChart() 24 | default: return nil 25 | } 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/ViewController/AAColumnVariantChartVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AAColumnVariantChartVC.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2022/10/15. 6 | // 7 | 8 | import UIKit 9 | 10 | class AAColumnVariantChartVC: AABaseChartVC { 11 | 12 | override func viewDidLoad() { 13 | super.viewDidLoad() 14 | 15 | } 16 | 17 | override func chartConfigurationWithSelectedIndex(_ selectedIndex: Int) -> Any? { 18 | switch (selectedIndex) { 19 | case 0: return AAColumnVariantChartComposer.variwideChart() 20 | case 1: return AAColumnVariantChartComposer.columnpyramidChart() 21 | case 2: return AAColumnVariantChartComposer.dumbbellChart() 22 | case 3: return AAColumnVariantChartComposer.lollipopChart() 23 | case 4: return AAColumnVariantChartComposer.xrangeChart() 24 | case 5: return AAColumnVariantChartComposer.histogramChart() 25 | case 6: return AAColumnVariantChartComposer.bellcurveChart() 26 | case 7: return AAColumnVariantChartComposer.bulletChart() 27 | default: return nil 28 | } 29 | } 30 | 31 | 32 | } 33 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/ViewController/AAHeatOrTreeMapChartVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AAHeatOrTreeMapChartVC.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2022/10/15. 6 | // 7 | 8 | import UIKit 9 | 10 | class AAHeatOrTreeMapChartVC: AABaseChartVC { 11 | 12 | override func viewDidLoad() { 13 | super.viewDidLoad() 14 | 15 | } 16 | 17 | // override func chartConfigurationWithSelectedIndex(_ selectedIndex: Int) -> Any? { 18 | // switch (selectedIndex) { 19 | // case 0: return AAHeatOrTreeMapChartComposer.heatmapChart() 20 | //// case 1: return AAHeatOrTreeMapChartComposer.tilemapChart() 21 | // case 2: return AAHeatOrTreeMapChartComposer.treemapWithColorAxisData() 22 | // case 3: return AAHeatOrTreeMapChartComposer.treemapWithLevelsData() 23 | // case 4: return AAHeatOrTreeMapChartComposer.drilldownLargeDataTreemapChart() 24 | // case 5: return AAHeatOrTreeMapChartComposer.largeDataHeatmapChart() 25 | // case 6: return AAHeatOrTreeMapChartComposer.simpleTilemapWithHexagonTileShape() 26 | // case 7: return AAHeatOrTreeMapChartComposer.simpleTilemapWithCircleTileShape() 27 | // case 8: return AAHeatOrTreeMapChartComposer.simpleTilemapWithDiamondTileShape() 28 | // case 9: return AAHeatOrTreeMapChartComposer.simpleTilemapWithSquareTileShape() 29 | // case 10: return AAHeatOrTreeMapChartComposer.tilemapForAfricaWithHexagonTileShape() 30 | // case 11: return AAHeatOrTreeMapChartComposer.tilemapForAfricaWithCircleTileShape() 31 | // case 12: return AAHeatOrTreeMapChartComposer.tilemapForAfricaWithDiamondTileShape() 32 | // case 13: return AAHeatOrTreeMapChartComposer.tilemapForAfricaWithSquareTileShape() 33 | // case 14: return AAHeatOrTreeMapChartComposer.tilemapChartForAmericaWithHexagonTileShape() 34 | // case 15: return AAHeatOrTreeMapChartComposer.tilemapChartForAmericaWithCircleTileShape() 35 | // case 16: return AAHeatOrTreeMapChartComposer.tilemapChartForAmericaWithDiamondTileShape() 36 | // case 17: return AAHeatOrTreeMapChartComposer.tilemapChartForAmericaWithSquareTileShape() 37 | // 38 | // default: return nil 39 | // } 40 | // } 41 | 42 | override func chartConfigurationWithSelectedIndex(_ selectedIndex: Int) -> Any? { 43 | switch (selectedIndex) { 44 | case 0: return AAHeatOrTreeMapChartComposer.heatmapChart() 45 | case 1: return AAHeatOrTreeMapChartComposer.treemapWithColorAxisData() 46 | case 2: return AAHeatOrTreeMapChartComposer.treemapWithLevelsData() 47 | case 3: return AAHeatOrTreeMapChartComposer.drilldownLargeDataTreemapChart() 48 | case 4: return AAHeatOrTreeMapChartComposer.largeDataHeatmapChart() 49 | case 5: return AAHeatOrTreeMapChartComposer.simpleTilemapWithHexagonTileShape() 50 | case 6: return AAHeatOrTreeMapChartComposer.simpleTilemapWithCircleTileShape() 51 | case 7: return AAHeatOrTreeMapChartComposer.simpleTilemapWithDiamondTileShape() 52 | case 8: return AAHeatOrTreeMapChartComposer.simpleTilemapWithSquareTileShape() 53 | case 9: return AAHeatOrTreeMapChartComposer.tilemapForAfricaWithHexagonTileShape() 54 | case 10: return AAHeatOrTreeMapChartComposer.tilemapForAfricaWithCircleTileShape() 55 | case 11: return AAHeatOrTreeMapChartComposer.tilemapForAfricaWithDiamondTileShape() 56 | case 12: return AAHeatOrTreeMapChartComposer.tilemapForAfricaWithSquareTileShape() 57 | case 13: return AAHeatOrTreeMapChartComposer.tilemapChartForAmericaWithHexagonTileShape() 58 | case 14: return AAHeatOrTreeMapChartComposer.tilemapChartForAmericaWithCircleTileShape() 59 | case 15: return AAHeatOrTreeMapChartComposer.tilemapChartForAmericaWithDiamondTileShape() 60 | case 16: return AAHeatOrTreeMapChartComposer.tilemapChartForAmericaWithSquareTileShape() 61 | 62 | default: return nil 63 | } 64 | } 65 | 66 | 67 | 68 | } 69 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/ViewController/AARelationshipChartVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AARelationshipChartVC.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2022/10/15. 6 | // 7 | 8 | import UIKit 9 | 10 | class AARelationshipChartVC: AABaseChartVC { 11 | 12 | override func viewDidLoad() { 13 | super.viewDidLoad() 14 | 15 | } 16 | 17 | override func chartConfigurationWithSelectedIndex(_ selectedIndex: Int) -> Any? { 18 | switch (selectedIndex) { 19 | case 0: return AARelationshipChartComposer.sankeyChart() 20 | case 1: return AARelationshipChartComposer.dependencywheelChart() 21 | case 2: return AARelationshipChartComposer.arcdiagramChart1() 22 | case 3: return AARelationshipChartComposer.arcdiagramChart2() 23 | case 4: return AARelationshipChartComposer.arcdiagramChart3() 24 | case 5: return AARelationshipChartComposer.organizationChart() 25 | case 6: return AARelationshipChartComposer.networkgraphChart() 26 | case 7: return AARelationshipChartComposer.simpleDependencyWheelChart() 27 | default: return nil 28 | } 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Demo/ViewController/OfficialChartSampleVC.swift: -------------------------------------------------------------------------------- 1 | // 2 | // OfficialChartSampleVC.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2024/12/6. 6 | // 7 | 8 | import UIKit 9 | import SwiftUI 10 | 11 | class OfficialChartSampleVC: UIViewController { 12 | override func viewDidLoad() { 13 | super.viewDidLoad() 14 | view.backgroundColor = .white 15 | 16 | // 将 SwiftUI 视图嵌入到当前 UIViewController 17 | let swiftUIView = GridView() 18 | let hostingController = UIHostingController(rootView: swiftUIView) 19 | 20 | // 添加为子控制器 21 | addChild(hostingController) 22 | view.addSubview(hostingController.view) 23 | 24 | // 设置布局 25 | hostingController.view.translatesAutoresizingMaskIntoConstraints = false 26 | NSLayoutConstraint.activate([ 27 | hostingController.view.leadingAnchor.constraint(equalTo: view.leadingAnchor), 28 | hostingController.view.trailingAnchor.constraint(equalTo: view.trailingAnchor), 29 | hostingController.view.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor), 30 | hostingController.view.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor) 31 | ]) 32 | hostingController.didMove(toParent: self) 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UIApplicationSceneManifest 24 | 25 | UIApplicationSupportsMultipleScenes 26 | 27 | UISceneConfigurations 28 | 29 | UIWindowSceneSessionRoleApplication 30 | 31 | 32 | UISceneConfigurationName 33 | Default Configuration 34 | UISceneDelegateClassName 35 | $(PRODUCT_MODULE_NAME).SceneDelegate 36 | UISceneStoryboardFile 37 | Main 38 | 39 | 40 | 41 | 42 | UIApplicationSupportsIndirectInputEvents 43 | 44 | UILaunchStoryboardName 45 | LaunchScreen 46 | UIMainStoryboardFile 47 | Main 48 | UIRequiredDeviceCapabilities 49 | 50 | armv7 51 | 52 | UISupportedInterfaceOrientations 53 | 54 | UIInterfaceOrientationPortrait 55 | UIInterfaceOrientationLandscapeLeft 56 | UIInterfaceOrientationLandscapeRight 57 | 58 | UISupportedInterfaceOrientations~ipad 59 | 60 | UIInterfaceOrientationPortrait 61 | UIInterfaceOrientationPortraitUpsideDown 62 | UIInterfaceOrientationLandscapeLeft 63 | UIInterfaceOrientationLandscapeRight 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/SceneDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SceneDelegate.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2020/11/10. 6 | // 7 | 8 | import UIKit 9 | 10 | class SceneDelegate: UIResponder, UIWindowSceneDelegate { 11 | 12 | var window: UIWindow? 13 | 14 | 15 | func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { 16 | // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. 17 | // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. 18 | // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). 19 | guard let _ = (scene as? UIWindowScene) else { return } 20 | } 21 | 22 | func sceneDidDisconnect(_ scene: UIScene) { 23 | // Called as the scene is being released by the system. 24 | // This occurs shortly after the scene enters the background, or when its session is discarded. 25 | // Release any resources associated with this scene that can be re-created the next time the scene connects. 26 | // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead). 27 | } 28 | 29 | func sceneDidBecomeActive(_ scene: UIScene) { 30 | // Called when the scene has moved from an inactive state to an active state. 31 | // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. 32 | } 33 | 34 | func sceneWillResignActive(_ scene: UIScene) { 35 | // Called when the scene will move from an active state to an inactive state. 36 | // This may occur due to temporary interruptions (ex. an incoming phone call). 37 | } 38 | 39 | func sceneWillEnterForeground(_ scene: UIScene) { 40 | // Called as the scene transitions from the background to the foreground. 41 | // Use this method to undo the changes made on entering the background. 42 | } 43 | 44 | func sceneDidEnterBackground(_ scene: UIScene) { 45 | // Called as the scene transitions from the foreground to the background. 46 | // Use this method to save data, release shared resources, and store enough scene-specific state information 47 | // to restore the scene back to its current state. 48 | } 49 | 50 | 51 | } 52 | 53 | -------------------------------------------------------------------------------- /AAInfographics-ProDemo/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // AAInfographics-ProDemo 4 | // 5 | // Created by AnAn on 2020/11/10. 6 | // 7 | 8 | import UIKit 9 | 10 | class ViewController: UIViewController { 11 | 12 | override func viewDidLoad() { 13 | super.viewDidLoad() 14 | // Do any additional setup after loading the view. 15 | } 16 | 17 | 18 | } 19 | 20 | -------------------------------------------------------------------------------- /AAInfographics-ProDemoTests/AAInfographics_ProDemoTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AAInfographics_ProDemoTests.swift 3 | // AAInfographics-ProDemoTests 4 | // 5 | // Created by AnAn on 2020/11/10. 6 | // 7 | 8 | import XCTest 9 | @testable import AAInfographics_ProDemo 10 | 11 | class AAInfographics_ProDemoTests: XCTestCase { 12 | 13 | override func setUpWithError() throws { 14 | // Put setup code here. This method is called before the invocation of each test method in the class. 15 | } 16 | 17 | override func tearDownWithError() throws { 18 | // Put teardown code here. This method is called after the invocation of each test method in the class. 19 | } 20 | 21 | func testExample() throws { 22 | // This is an example of a functional test case. 23 | // Use XCTAssert and related functions to verify your tests produce the correct results. 24 | } 25 | 26 | func testPerformanceExample() throws { 27 | // This is an example of a performance test case. 28 | self.measure { 29 | // Put the code you want to measure the time of here. 30 | } 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /AAInfographics-ProDemoTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /AAInfographics-ProDemoUITests/AAInfographics_ProDemoUITests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AAInfographics_ProDemoUITests.swift 3 | // AAInfographics-ProDemoUITests 4 | // 5 | // Created by AnAn on 2020/11/10. 6 | // 7 | 8 | import XCTest 9 | 10 | class AAInfographics_ProDemoUITests: XCTestCase { 11 | 12 | override func setUpWithError() throws { 13 | // Put setup code here. This method is called before the invocation of each test method in the class. 14 | 15 | // In UI tests it is usually best to stop immediately when a failure occurs. 16 | continueAfterFailure = false 17 | 18 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 19 | } 20 | 21 | override func tearDownWithError() throws { 22 | // Put teardown code here. This method is called after the invocation of each test method in the class. 23 | } 24 | 25 | func testExample() throws { 26 | // UI tests must launch the application that they test. 27 | let app = XCUIApplication() 28 | app.launch() 29 | 30 | // Use recording to get started writing UI tests. 31 | // Use XCTAssert and related functions to verify your tests produce the correct results. 32 | } 33 | 34 | func testLaunchPerformance() throws { 35 | if #available(macOS 10.15, iOS 13.0, tvOS 13.0, *) { 36 | // This measures how long it takes to launch your application. 37 | measure(metrics: [XCTApplicationLaunchMetric()]) { 38 | XCUIApplication().launch() 39 | } 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /AAInfographics-ProDemoUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /CHINESE-README.md: -------------------------------------------------------------------------------- 1 | # AAInfographics-Pro 2 | AAInfographics 的进阶 Pro 版本 3 | 4 | 5 | ### Heat and tree maps 6 | 7 | ![](https://www.highcharts.com/demo/images/samples/highcharts/demo/heatmap/thumbnail.svg) 8 | ![](https://www.highcharts.com/demo/images/samples/highcharts/demo/heatmap-canvas/thumbnail.svg) 9 | ![](https://www.highcharts.com/demo/images/samples/highcharts/demo/treemap-large-dataset/thumbnail.svg) 10 | ![](https://www.highcharts.com/demo/images/samples/highcharts/demo/honeycomb-usa/thumbnail.svg) 11 | ![](https://www.highcharts.com/demo/images/samples/highcharts/demo/treemap-coloraxis/thumbnail.svg) 12 | ![](https://www.highcharts.com/demo/images/samples/highcharts/demo/treemap-with-levels/thumbnail.svg) 13 | 14 | 15 | ## Bubble Charts 16 | ![](https://www.highcharts.com/demo/images/samples/highcharts/demo/packed-bubble/thumbnail.svg) 17 | ![](https://www.highcharts.com/demo/images/samples/highcharts/demo/packed-bubble-split/thumbnail.svg) 18 | ![](https://www.highcharts.com/demo/images/samples/highcharts/demo/venn-diagram/thumbnail.svg) 19 | ![](https://www.highcharts.com/demo/euler-diagram) 20 | 21 | ## Relationships Charts 22 | ![](https://www.highcharts.com/demo/arc-diagram) 23 | ![](https://www.highcharts.com/demo/images/samples/highcharts/demo/dependency-wheel/thumbnail.svg) 24 | ![](https://www.highcharts.com/demo/images/samples/highcharts/demo/sankey-diagram/thumbnail.svg) 25 | ![](https://www.highcharts.com/demo/images/samples/highcharts/demo/network-graph/thumbnail.svg) 26 | ![](https://www.highcharts.com/demo/images/samples/highcharts/demo/organization-chart/thumbnail.svg) 27 | -------------------------------------------------------------------------------- /Package.swift: -------------------------------------------------------------------------------- 1 | // swift-tools-version:5.3 2 | import PackageDescription 3 | 4 | let package = Package( 5 | name: "AAInfographics-Pro", 6 | platforms: [ 7 | .iOS(.v10), 8 | .macOS(.v10_13) 9 | ], 10 | products: [ 11 | .library(name: "AAInfographics-Pro", targets: ["AAInfographics-Pro"]) 12 | ], 13 | targets: [ 14 | .target( 15 | name: "AAInfographics-Pro", 16 | path: "AAInfographics-Pro", 17 | exclude: ["Info.plist", "ProjectBundlePathLoader.swift"], 18 | resources: [ 19 | .copy("AAJSFiles.bundle") 20 | ] 21 | ) 22 | ] 23 | ) 24 | --------------------------------------------------------------------------------