├── .babelrc ├── .eslintrc ├── .gitattributes ├── .gitignore ├── LICENSE.md ├── README.md ├── build └── dev │ ├── advanced-analytics-toolbox.js │ ├── advanced-analytics-toolbox.ng.html │ ├── advanced-analytics-toolbox.qext │ ├── initialProperties.js │ ├── lib │ ├── css │ │ └── styles.css │ ├── images │ │ └── icon.png │ ├── js │ │ ├── analysis │ │ │ ├── analysis.js │ │ │ ├── anova.js │ │ │ ├── augmented_dickey_fuller_test.js │ │ │ ├── autocorrelation.js │ │ │ ├── coefplot.js │ │ │ ├── correlation_heatmap.js │ │ │ ├── decision_tree.js │ │ │ ├── decision_tree_predict.js │ │ │ ├── f_test.js │ │ │ ├── holt_winters.js │ │ │ ├── kmeans.js │ │ │ ├── kmeans_3d.js │ │ │ ├── kmeans_means.js │ │ │ ├── kmeans_optimize.js │ │ │ ├── ljung_box_test.js │ │ │ ├── logistic_regression.js │ │ │ ├── logistic_regression_coefplot.js │ │ │ ├── logistic_regression_predict.js │ │ │ ├── pca.js │ │ │ ├── pca_biplot.js │ │ │ ├── pca_variance.js │ │ │ ├── regression_analysis.js │ │ │ ├── regression_analysis_line_chart.js │ │ │ ├── simple_linear_bubble.js │ │ │ ├── simple_linear_line.js │ │ │ ├── t_test.js │ │ │ ├── textmining_wordcloud.js │ │ │ ├── timeseries_decomposition.js │ │ │ ├── timeseries_forecast.js │ │ │ └── tukey.js │ │ ├── chart │ │ │ ├── bubble_3d_chart.js │ │ │ ├── bubble_chart.js │ │ │ ├── datatables.js │ │ │ ├── heatmap.js │ │ │ ├── line_chart.js │ │ │ ├── tree_chart.js │ │ │ └── wordcloud.js │ │ ├── ui │ │ │ ├── element │ │ │ │ ├── frontPage.ng.html │ │ │ │ ├── listAggrMeasureElement.ng.html │ │ │ │ ├── listAnalysisCategoriesElement.ng.html │ │ │ │ ├── listAnalysisTypesElement.ng.html │ │ │ │ ├── listDimensionElement.ng.html │ │ │ │ └── listMeasureElement.ng.html │ │ │ ├── ui_analysistype.js │ │ │ ├── ui_control.js │ │ │ ├── ui_dimension.js │ │ │ ├── ui_element.js │ │ │ ├── ui_fieldlist.js │ │ │ └── ui_measure.js │ │ └── util │ │ │ └── utils.js │ ├── maps │ │ ├── advanced-analytics-toolbox.js.map │ │ ├── analysis │ │ │ ├── analysis.js.map │ │ │ ├── anova.js.map │ │ │ ├── augmented_dickey_fuller_test.js.map │ │ │ ├── autocorrelation.js.map │ │ │ ├── coefplot.js.map │ │ │ ├── correlation_heatmap.js.map │ │ │ ├── decision_tree.js.map │ │ │ ├── decision_tree_predict.js.map │ │ │ ├── f_test.js.map │ │ │ ├── holt_winters.js.map │ │ │ ├── kmeans.js.map │ │ │ ├── kmeans_3d.js.map │ │ │ ├── kmeans_means.js.map │ │ │ ├── kmeans_optimize.js.map │ │ │ ├── ljung_box_test.js.map │ │ │ ├── logistic_regression.js.map │ │ │ ├── logistic_regression_coefplot.js.map │ │ │ ├── logistic_regression_predict.js.map │ │ │ ├── pca.js.map │ │ │ ├── pca_biplot.js.map │ │ │ ├── pca_variance.js.map │ │ │ ├── regression_analysis.js.map │ │ │ ├── regression_analysis_line_chart.js.map │ │ │ ├── simple_linear_bubble.js.map │ │ │ ├── simple_linear_line.js.map │ │ │ ├── t_test.js.map │ │ │ ├── textmining_wordcloud.js.map │ │ │ ├── timeseries_decomposition.js.map │ │ │ ├── timeseries_forecast.js.map │ │ │ └── tukey.js.map │ │ ├── chart │ │ │ ├── bubble_3d_chart.js.map │ │ │ ├── bubble_chart.js.map │ │ │ ├── datatables.js.map │ │ │ ├── heatmap.js.map │ │ │ ├── line_chart.js.map │ │ │ ├── tree_chart.js.map │ │ │ └── wordcloud.js.map │ │ ├── datatables │ │ │ ├── buttons.dataTables.min.css.map │ │ │ ├── colReorder.dataTables.min.css.map │ │ │ ├── jquery.dataTables.min.css.map │ │ │ └── select.dataTables.min.css.map │ │ ├── initialProperties.js.map │ │ ├── jqcloud.css.map │ │ ├── properties.js.map │ │ ├── styles.css.map │ │ ├── ui │ │ │ ├── ui_analysistype.js.map │ │ │ ├── ui_control.js.map │ │ │ ├── ui_dimension.js.map │ │ │ ├── ui_element.js.map │ │ │ ├── ui_fieldlist.js.map │ │ │ └── ui_measure.js.map │ │ └── util │ │ │ └── utils.js.map │ └── vendor │ │ ├── d3-format.min.js │ │ ├── d3.min.js │ │ ├── datatables │ │ ├── buttons.dataTables.min.css │ │ ├── buttons.html5.min.js │ │ ├── buttons.print.min.js │ │ ├── colReorder.dataTables.min.css │ │ ├── dataTables.buttons.min.js │ │ ├── dataTables.colReorder.min.js │ │ ├── dataTables.select.min.js │ │ ├── jquery.dataTables.min.css │ │ ├── jquery.dataTables.min.js │ │ └── select.dataTables.min.css │ │ ├── images │ │ ├── sort_asc.png │ │ ├── sort_asc_disabled.png │ │ ├── sort_both.png │ │ ├── sort_desc.png │ │ └── sort_desc_disabled.png │ │ ├── jqcloud.css │ │ ├── jqcloud.js │ │ ├── leonardo-ui.min.js │ │ └── plotly.min.js │ └── properties.js ├── docs ├── analysis │ ├── analysis.md │ ├── anova.md │ ├── augmented_dickey_fuller_test.md │ ├── autocorrelation.md │ ├── coefplot.md │ ├── correlation_heatmap.md │ ├── data.md │ ├── data │ │ ├── AirPassengers.xlsx │ │ ├── Boston.xlsx │ │ ├── InsectSprays.xlsx │ │ ├── Iris.xlsx │ │ ├── ProductionLines.csv │ │ ├── WholesaleCustomers.xlsx │ │ ├── cars.xlsx │ │ ├── churn.xlsx │ │ ├── immer.xlsx │ │ ├── lh.xlsx │ │ ├── mtcars.xlsx │ │ ├── sales.xlsx │ │ ├── sms_spam.xlsx │ │ └── whitewine.xlsx │ ├── decision_tree.md │ ├── decision_tree_predict.md │ ├── f_test.md │ ├── holt_winters.md │ ├── images │ │ ├── anova_example1.png │ │ ├── arima_forecast_example1.png │ │ ├── arima_forecast_example2.png │ │ ├── augmented_dickey_fuller_test_example1.png │ │ ├── augmented_dickey_fuller_test_example2-1.png │ │ ├── augmented_dickey_fuller_test_example2-2.png │ │ ├── augmented_dickey_fuller_test_example2-3.png │ │ ├── autocorrelation_example1.png │ │ ├── autocorrelation_example2-1.png │ │ ├── autocorrelation_example2-2.png │ │ ├── autocorrelation_example2-3.png │ │ ├── coef_example1.png │ │ ├── console.png │ │ ├── correlation_heatmap_example1.png │ │ ├── decision_tree_example1-1.png │ │ ├── decision_tree_example1-2.png │ │ ├── decision_tree_example2-1.png │ │ ├── decision_tree_example3-1.png │ │ ├── decision_tree_predict_example1-1.png │ │ ├── decision_tree_predict_example2-1.png │ │ ├── decision_tree_predict_example3-1.png │ │ ├── decompose_time_series_example1.png │ │ ├── f_test_example1.png │ │ ├── holt_winters_example1.png │ │ ├── holt_winters_example2.png │ │ ├── icon.ai │ │ ├── kmeans_3d_example1.png │ │ ├── kmeans_3d_example2.png │ │ ├── kmeans_3d_example3.png │ │ ├── kmeans_example1-1.png │ │ ├── kmeans_example2-1.png │ │ ├── kmeans_example2-2.png │ │ ├── kmeans_example2-3.png │ │ ├── kmeans_means_example1.png │ │ ├── kmeans_means_example2.png │ │ ├── kmeans_optimize_example1.png │ │ ├── kmeans_optimize_example2.png │ │ ├── ljung_box_test_example1-1.png │ │ ├── logistic_regression_coefplot_example2-1.png │ │ ├── logistic_regression_example2-1.png │ │ ├── logistic_regression_example2-2.png │ │ ├── logistic_regression_predict_example2-1.png │ │ ├── pca_biplot_example1.png │ │ ├── pca_example1.png │ │ ├── pca_variance_example1.png │ │ ├── regression_analysis__line_chart_example1.png │ │ ├── regression_analysis_example1.png │ │ ├── sample1.png │ │ ├── sample2.png │ │ ├── simple_linear_bubble_example1.png │ │ ├── simple_linear_line_example1.png │ │ ├── simple_linear_line_example2.png │ │ ├── t_test_example1.png │ │ ├── t_test_example2.png │ │ ├── textmining_wordcloud_example1.png │ │ ├── textmining_wordcloud_example2.png │ │ └── tukey_example1.png │ ├── kmeans.md │ ├── kmeans_3d.md │ ├── kmeans_means.md │ ├── kmeans_optimize.md │ ├── ljung_box_test.md │ ├── logistic_regression.md │ ├── logistic_regression_coefplot.md │ ├── logistic_regression_predict.md │ ├── pca.md │ ├── pca_biplot.md │ ├── pca_variance.md │ ├── regression_analysis.md │ ├── regression_analysis_line_chart.md │ ├── simple_linear_bubble.md │ ├── simple_linear_line.md │ ├── t_test.md │ ├── textmining_wordcloud.md │ ├── timeseries_decomposition.md │ ├── timeseries_forecast.md │ └── tukey.md ├── debugmode.md ├── dev.md └── packages.md ├── gulpfile.js ├── package-lock.json ├── package.json └── src ├── advanced-analytics-toolbox.js ├── advanced-analytics-toolbox.ng.html ├── advanced-analytics-toolbox.qext ├── initialProperties.js ├── lib ├── images │ └── icon.png ├── js │ ├── analysis │ │ ├── analysis.js │ │ ├── anova.js │ │ ├── augmented_dickey_fuller_test.js │ │ ├── autocorrelation.js │ │ ├── coefplot.js │ │ ├── correlation_heatmap.js │ │ ├── decision_tree.js │ │ ├── decision_tree_predict.js │ │ ├── f_test.js │ │ ├── holt_winters.js │ │ ├── kmeans.js │ │ ├── kmeans_3d.js │ │ ├── kmeans_means.js │ │ ├── kmeans_optimize.js │ │ ├── ljung_box_test.js │ │ ├── logistic_regression.js │ │ ├── logistic_regression_coefplot.js │ │ ├── logistic_regression_predict.js │ │ ├── pca.js │ │ ├── pca_biplot.js │ │ ├── pca_variance.js │ │ ├── regression_analysis.js │ │ ├── regression_analysis_line_chart.js │ │ ├── simple_linear_bubble.js │ │ ├── simple_linear_line.js │ │ ├── t_test.js │ │ ├── textmining_wordcloud.js │ │ ├── timeseries_decomposition.js │ │ ├── timeseries_forecast.js │ │ └── tukey.js │ ├── chart │ │ ├── bubble_3d_chart.js │ │ ├── bubble_chart.js │ │ ├── datatables.js │ │ ├── heatmap.js │ │ ├── line_chart.js │ │ ├── tree_chart.js │ │ └── wordcloud.js │ ├── ui │ │ ├── element │ │ │ ├── frontPage.ng.html │ │ │ ├── listAggrMeasureElement.ng.html │ │ │ ├── listAnalysisCategoriesElement.ng.html │ │ │ ├── listAnalysisTypesElement.ng.html │ │ │ ├── listDimensionElement.ng.html │ │ │ └── listMeasureElement.ng.html │ │ ├── ui_analysistype.js │ │ ├── ui_control.js │ │ ├── ui_dimension.js │ │ ├── ui_element.js │ │ ├── ui_fieldlist.js │ │ └── ui_measure.js │ └── util │ │ └── utils.js ├── less │ ├── _root.less │ └── styles.less └── vendor │ ├── d3-format.min.js │ ├── d3.min.js │ ├── datatables │ ├── buttons.dataTables.min.css │ ├── buttons.html5.min.js │ ├── buttons.print.min.js │ ├── colReorder.dataTables.min.css │ ├── dataTables.buttons.min.js │ ├── dataTables.colReorder.min.js │ ├── dataTables.select.min.js │ ├── jquery.dataTables.min.css │ ├── jquery.dataTables.min.js │ └── select.dataTables.min.css │ ├── images │ ├── sort_asc.png │ ├── sort_asc_disabled.png │ ├── sort_both.png │ ├── sort_desc.png │ └── sort_desc_disabled.png │ ├── jqcloud.css │ ├── jqcloud.js │ ├── leonardo-ui.min.js │ └── plotly.min.js ├── properties.js └── wbfolder.wbl /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["es2015"] 3 | } 4 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "airbnb-base", 3 | "rules": { 4 | linebreak-style: ["error", "windows"], 5 | arrow-body-style: ["error", "always"] 6 | }, 7 | "globals": { 8 | "describe" : false, 9 | "it" : false, 10 | "before" : false, 11 | "after" : false, 12 | "beforeEach" : false, 13 | "afterEach" : false, 14 | "expect" : false, 15 | }, 16 | } 17 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Runtime data 7 | pids 8 | *.pid 9 | *.seed 10 | 11 | # Directory for instrumented libs generated by jscoverage/JSCover 12 | lib-cov 13 | 14 | # Coverage directory used by tools like istanbul 15 | coverage 16 | 17 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 18 | .grunt 19 | 20 | # node-waf configuration 21 | .lock-wscript 22 | 23 | # Compiled binary addons (http://nodejs.org/api/addons.html) 24 | # build 25 | build/Release 26 | 27 | # Dependency directories 28 | node_modules 29 | jspm_packages 30 | 31 | # Optional npm cache directory 32 | .npm 33 | 34 | # Optional REPL history 35 | .node_repl_history 36 | 37 | # ========================= 38 | # Operating System Files 39 | # ========================= 40 | 41 | # OSX 42 | # ========================= 43 | 44 | .DS_Store 45 | .AppleDouble 46 | .LSOverride 47 | 48 | # Thumbnails 49 | ._* 50 | 51 | # Files that might appear in the root of a volume 52 | .DocumentRevisions-V100 53 | .fseventsd 54 | .Spotlight-V100 55 | .TemporaryItems 56 | .Trashes 57 | .VolumeIcon.icns 58 | 59 | # Directories potentially created on remote AFP share 60 | .AppleDB 61 | .AppleDesktop 62 | Network Trash Folder 63 | Temporary Items 64 | .apdisk 65 | 66 | # Windows 67 | # ========================= 68 | 69 | # Windows image file caches 70 | Thumbs.db 71 | ehthumbs.db 72 | 73 | # Folder config file 74 | Desktop.ini 75 | 76 | # Recycle Bin used on file shares 77 | $RECYCLE.BIN/ 78 | 79 | # Windows Installer files 80 | *.cab 81 | *.msi 82 | *.msm 83 | *.msp 84 | 85 | # Windows shortcuts 86 | *.lnk 87 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | **Qlik Sense Advanced Analytics Toolbox is licensed under the "MIT" license: 2 | 3 | * [License](#license) 4 | * [External Libraries](#external-libraries) 5 | 6 | --- 7 | 8 | ## License 9 | 10 | > 11 | > The MIT License (MIT) 12 | > 13 | > Copyright (c) 2016 Masaki Hamano 14 | > 15 | > Permission is hereby granted, free of charge, to any person obtaining a copy 16 | > of this software and associated documentation files (the "Software"), to deal 17 | > in the Software without restriction, including without limitation the rights 18 | > to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | > copies of the Software, and to permit persons to whom the Software is 20 | > furnished to do so, subject to the following conditions: 21 | > 22 | > The above copyright notice and this permission notice shall be included in all 23 | > copies or substantial portions of the Software. 24 | > 25 | > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | > IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | > FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | > AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | > SOFTWARE. 32 | > 33 | 34 | ## External Libraries 35 | 36 | These external libraries are used within this solution. Many thanks to the authors! 37 | 38 | **Library 1** 39 | * Name: plotly.js 40 | * License: MIT License (https://github.com/plotly/plotly.js/blob/master/LICENSE) 41 | * Url: https://github.com/plotly/plotly.js 42 | * Author: Alex C. Johnson, Étienne Tétreault-Pinard, Mikola Lysenko, Ricky Reusser, Robert Monfera, Nicolas Riesco, Miklós Tusz, Chelsea Douglas, Ben Postlethwaite, Chris Parmer, Alex Vados 43 | 44 | **Library 2** 45 | * Name: jQCloud 46 | * License: MIT License (https://github.com/lucaong/jQCloud/blob/master/LICENSE.txt) 47 | * Url: https://github.com/lucaong/jQCloud 48 | * Author: Luca Ongaro 49 | 50 | **Library 3** 51 | * Name: DataTables 52 | * License: MIT License (https://github.com/DataTables/DataTables/blob/master/license.txt) 53 | * Url: https://github.com/DataTables/DataTables 54 | * Author: SpryMedia Ltd 55 | 56 | **Library 4** 57 | * Name: d3-format 58 | * License: BSD 3-clause "New" or "Revised" License (https://github.com/d3/d3-format/blob/master/LICENSE) 59 | * Url: https://github.com/d3/d3-format 60 | * Author: Mike Bostock 61 | 62 | **Library 5** 63 | * Name: d3 64 | * License: GNU General Public License, version 3 (https://github.com/d3/d3/blob/master/LICENSE) 65 | * Url: https://github.com/d3/d3 66 | * Author: Mike Bostock 67 | 68 | **Library 6** 69 | * Name: Collapsible Tree 70 | * License: GNU General Public License, version 3 71 | * Url: https://bl.ocks.org/mbostock/4339083 72 | * Author: Mike Bostock 73 | -------------------------------------------------------------------------------- /build/dev/advanced-analytics-toolbox.js: -------------------------------------------------------------------------------- 1 | "use strict";define(["qlik","jquery","css!./lib/css/styles.css","./properties","./initialProperties","text!./advanced-analytics-toolbox.ng.html","./lib/js/ui/ui_control","./lib/js/analysis/analysis","./lib/js/util/utils"],function(e,s,n,i,t,o,r,a,p){s("