blob: 1fe49bc5f4202b670ec41fcda4bee50e35815475 [file] [log] [blame]
/*
*
* Copyright 2016 RIFT.IO Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
var React = require('react');
//var Histogram = require('react-d3-histogram')
export default {
//test: require('./test/test.js'),
button: require('./button/rw.button.js'),
React: React,
// Histogram: Histogram,
Multicomponent: require('./multicomponent/multicomponent.js'),
Mixins: require('./mixins/ButtonEventListener.js'),
Gauge: require('./gauge/gauge.js'),
Bullet: require('./bullet/bullet.js')
};
// require('../../assets/js/n3-line-chart.js');
// var Gauge = require('../../assets/js/gauge-modified.js');
// var bulletController = function($scope, $element) {
// this.$element = $element;
// this.vertical = false;
// this.value = 0;
// this.min = 0;
// this.max = 100;
// //this.range = this.max - this.min;
// //this.percent = (this.value - this.min) / this.range;
// this.displayValue = this.value;
// this.isPercent = (this.units == '')? true:false;
// this.bulletColor = "#6BB814";
// this.fontsize = 28;
// this.radius = 4;
// this.containerMarginX = 0;
// this.containerMarginY = 0;
// this.textMarginX = 5;
// this.textMarginY = 42;
// this.bulletMargin = 0;
// this.width = 512;
// this.height = 64;
// this.markerX = -100; // puts it off screen unless set
// var self = this;
// if (this.isPercent) {
// this.displayValue + "%";
// }
// $scope.$watch(
// function() {
// return self.value;
// },
// function() {
// self.valueChanged();
// }
// );
// }
// bulletController.prototype = {
// valueChanged: function() {
// var range = this.max - this.min;
// var normalizedValue = (this.value - this.min) / range;
// if (this.isPercent) {
// this.displayValue = String(Math.round(normalizedValue * 100)) + "%";
// } else {
// this.displayValue = this.value;
// }
// // All versions of IE as of Jan 2015 does not support inline CSS transforms on SVG
// if (platform.name == 'IE') {
// this.bulletWidth = Math.round(100 * normalizedValue) + '%';
// } else {
// this.bulletWidth = this.width - (2 * this.containerMarginX);
// var transform = 'scaleX(' + normalizedValue + ')';
// var bullet = $(this.$element).find('.bullet2');
// bullet.css('transform', transform);
// bullet.css('-webkit-transform', transform);
// }
// },
// markerChanged: function() {
// var range = this.max - this.min;
// var w = this.width - (2 * this.containerMarginX);
// this.markerX = this.containerMarginX + ((this.marker - this.min) / range ) * w;
// this.markerY1 = 7;
// this.markerY2 = this.width - 7;
// }
// }
// angular.module('components', ['n3-line-chart'])
// .directive('rwBullet', function() {
// return {
// restrict : 'E',
// templateUrl: 'modules/views/rw.bullet.tmpl.html',
// bindToController: true,
// controllerAs: 'bullet',
// controller: bulletController,
// replace: true,
// scope: {
// min : '@?',
// max : '@?',
// value : '@',
// marker: '@?',
// units: '@?',
// bulletColor: '@?',
// label: '@?'
// }
// };
// })
// .directive('rwSlider', function() {
// var controller = function($scope, $element, $timeout) {
// // Q: is there a way to force attributes to be ints?
// $scope.min = $scope.min || "0";
// $scope.max = $scope.max || "100";
// $scope.step = $scope.step || "1";
// $scope.height = $scope.height || "30";
// $scope.orientation = $scope.orientation || 'horizontal';
// $scope.tooltipInvert = $scope.tooltipInvert || false;
// $scope.percent = $scope.percent || false;
// $scope.kvalue = $scope.kvalue || false;
// $scope.direction = $scope.direction || "ltr";
// $($element).noUiSlider({
// start: parseInt($scope.value),
// step: parseInt($scope.step),
// orientation: $scope.orientation,
// range: {
// min: parseInt($scope.min),
// max: parseInt($scope.max)
// },
// direction: $scope.direction
// });
// //$(".no-Ui-target").Link('upper').to('-inline-<div class="tooltip"></div>')
// var onSlide = function(e, value) {
// $timeout(function(){
// $scope.value = value;
// })
// };
// $($element).on({
// change: onSlide,
// slide: onSlide,
// set: $scope.onSet({value: $scope.value})
// });
// var val = String(Math.round($scope.value));
// if ($scope.percent) {
// val += "%"
// } else if ($scope.kvalue) {
// val += "k"
// }
// $($element).height($scope.height);
// if ($scope.tooltipInvert) {
// $($element).find('.noUi-handle').append("<div class='tooltip' style='position:relative;right:20px'>" + val + "</div>");
// } else {
// $($element).find('.noUi-handle').append("<div class='tooltip' style='position:relative;left:-20px'>" + val + "</div>");
// }
// $scope.$watch('value', function(value) {
// var val = String(Math.round($scope.value));
// if ($scope.percent) {
// val += "%"
// } else if($scope.kvalue) {
// val += "k"
// }
// $($element).val(value);
// $($element).find('.tooltip').html(val);
// if ($scope.tooltipInvert) {
// $($element).find('.tooltip').css('right', $($element).find('.tooltip').innerWidth() * -1);
// } else {
// $($element).find('.tooltip').css('left', $($element).find('.tooltip').innerWidth() * -1);
// }
// });
// };
// return {
// restrict : 'E',
// template: '<div></div>',
// controller : controller,
// replace: true,
// scope: {
// min : '@',
// max : '@',
// width: '@',
// height: '@',
// step : '@',
// orientation : '@',
// tooltipInvert: '@',
// percent: '@',
// kvalue: '@?',
// onSet:'&?',
// direction: '@?',
// value:'=?'
// }
// };
// })
// .directive('rwGauge', function() {
// return {
// restrict: 'AE',
// template: '<canvas class="rwgauge" style="width:100%;height:100%;max-width:{{width}}px;max-height:240px;"></canvas>',
// replace: true,
// scope: {
// min: '@?',
// max: '@?',
// size: '@?',
// color: '@?',
// value: '@?',
// resize: '@?',
// isAggregate: '@?',
// units: '@?',
// valueFormat: '=?',
// width: '@?'
// },
// bindToController: true,
// controllerAs: 'gauge',
// controller: function($scope, $element) {
// var self = this;
// this.gauge = null;
// this.min = this.min || 0;
// this.max = this.max || 100;
// this.nSteps = 14;
// this.size = this.size || 300;
// this.units = this.units || '';
// $scope.width = this.width || 240;
// this.color = this.color || 'hsla(212, 57%, 50%, 1)';
// if (!this.valueFormat) {
// if (this.max > 1000 || this.value) {
// self.valueFormat = {
// "int": 1,
// "dec": 0
// };
// } else {
// self.valueFormat = {
// "int": 1,
// "dec": 2
// };
// }
// }
// this.isAggregate = this.isAggregate || false;
// this.resize = this.resize || false;
// if (this.format == 'percent') {
// self.valueFormat = {
// "int": 3,
// "dec": 0
// };
// }
// $scope.$watch(function() {
// return self.max;
// }, function(n, o) {
// if(n !== o) {
// renderGauge();
// }
// });
// $scope.$watch(function() {
// return self.valueFormat;
// }, function(n, o) {
// if(n != 0) {
// renderGauge();
// }
// });
// $scope.$watch(function() {
// return self.value;
// }, function() {
// if (self.gauge) {
// // w/o rounding gauge will unexplainably thrash round.
// self.valueFormat = determineValueFormat(self.value);
// self.gauge.setValue(Math.ceil(self.value * 100) / 100);
// //self.gauge.setValue(Math.round(self.value));
// }
// });
// angular.element($element).ready(function() {
// console.log('rendering')
// renderGauge();
// })
// window.testme = renderGauge;
// function determineValueFormat(value) {
// if (value > 999 || self.units == "%") {
// return {
// "int": 1,
// "dec": 0
// }
// }
// return {
// "int": 1,
// "dec": 2
// }
// }
// function renderGauge(calcWidth) {
// if (self.max == self.min) {
// self.max = 14;
// }
// var range = self.max - self.min;
// var step = Math.round(range / self.nSteps);
// var majorTicks = [];
// for (var i = 0; i <= self.nSteps; i++) {
// majorTicks.push(self.min + (i * step));
// };
// var redLine = self.min + (range * 0.9);
// var config = {
// isAggregate: self.isAggregate,
// renderTo: angular.element($element)[0],
// width: calcWidth || self.size,
// height: calcWidth || self.size,
// glow: false,
// units: self.units,
// title: false,
// minValue: self.min,
// maxValue: self.max,
// majorTicks: majorTicks,
// valueFormat: determineValueFormat(self.value),
// minorTicks: 0,
// strokeTicks: false,
// highlights: [],
// colors: {
// plate: 'rgba(0,0,0,0)',
// majorTicks: 'rgba(15, 123, 182, .84)',
// minorTicks: '#ccc',
// title: 'rgba(50,50,50,100)',
// units: 'rgba(50,50,50,100)',
// numbers: '#fff',
// needle: {
// start: 'rgba(255, 255, 255, 1)',
// end: 'rgba(255, 255, 255, 1)'
// }
// }
// };
// var min = config.minValue;
// var max = config.maxValue;
// var N = 1000;
// var increment = (max - min) / N;
// for (i = 0; i < N; i++) {
// var temp_color = 'rgb(0, 172, 238)';
// if (i > 0.5714 * N && i <= 0.6428 * N) {
// temp_color = 'rgb(0,157,217)';
// } else if (i >= 0.6428 * N && i < 0.7142 * N) {
// temp_color = 'rgb(0,142,196)';
// } else if (i >= 0.7142 * N && i < 0.7857 * N) {
// temp_color = 'rgb(0,126,175)';
// } else if (i >= 0.7857 * N && i < 0.8571 * N) {
// temp_color = 'rgb(0,122,154)';
// } else if (i >= 0.8571 * N && i < 0.9285 * N) {
// temp_color = 'rgb(0,96,133)';
// } else if (i >= 0.9285 * N) {
// temp_color = 'rgb(0,80,112)';
// }
// config.highlights.push({
// from: i * increment,
// to: increment * (i + 2),
// color: temp_color
// })
// }
// var updateSize = _.debounce(function() {
// config.maxValue = self.max;
// var clientWidth = self.parentNode.parentNode.clientWidth / 2;
// var calcWidth = (300 > clientWidth) ? clientWidth : 300;
// self.gauge.config.width = self.gauge.config.height = calcWidth;
// self.renderGauge(calcWidth);
// }, 500);
// if (self.resize) $(window).resize(updateSize)
// if (self.gauge) {
// self.gauge.updateConfig(config);
// } else {
// self.gauge = new Gauge(config);
// self.gauge.draw();
// }
// };
// },
// }
// });