Eslint operator spacing config (#1109)

* Eslint operator spacing config

* consistent spacing after comma

* comma styling config

* Trailing spaces config
This commit is contained in:
aashna27
2019-06-14 02:29:43 +05:30
committed by Jeffrey Warren
parent 9eac21897a
commit 440c3e0ad0
64 changed files with 400 additions and 396 deletions

View File

@@ -17,7 +17,7 @@ module.exports = {
'indent': ['error',2], 'indent': ['error',2],
'linebreak-style': ['error','unix'], 'linebreak-style': ['error','unix'],
'quotes': ['error','single'], 'quotes': ['error','single'],
'semi': ['error','always'], 'semi': ['error','always'], //
'no-undef': 0, 'no-undef': 0,
'no-console': 'off', 'no-console': 'off',
'no-unused-vars': 'off', 'no-unused-vars': 'off',
@@ -27,6 +27,10 @@ module.exports = {
'no-mixed-spaces-and-tabs':'off', 'no-mixed-spaces-and-tabs':'off',
'no-self-assign':'off', 'no-self-assign':'off',
'no-constant-condition':'off', 'no-constant-condition':'off',
'no-dupe-keys':'off' 'no-dupe-keys':'off',
'space-infix-ops': ['error', {'int32Hint': false}], // Enforce spaces around operators
'comma-spacing': ['error', { "before": false, "after": true }], // require spacing after a comma
'comma-style': ['error', 'last'], // requires comma after and on the same line
'no-trailing-spaces': ['error', { 'skipBlankLines': true }], // Disallows trailing whitespace on end of lines and empty lines
} }
}; };

View File

@@ -46,7 +46,7 @@ window.onload = function() {
$(':root').animate({scrollTop: 0}); $(':root').animate({scrollTop: 0});
} }
$('#move-up').on('click',topFunction); $('#move-up').on('click', topFunction);
// UI for each step: // UI for each step:
@@ -63,14 +63,14 @@ window.onload = function() {
} }
var resetSequence = function(){ var resetSequence = function(){
var r=confirm('Do you want to reset the sequence?'); var r = confirm('Do you want to reset the sequence?');
if (r) if (r)
window.location = '/'; window.location = '/';
}; };
$('#addStep select').on('change', ui.selectNewStepUi); $('#addStep select').on('change', ui.selectNewStepUi);
$('#addStep #add-step-btn').on('click', ui.addStepUi); $('#addStep #add-step-btn').on('click', ui.addStepUi);
$('#resetButton').on('click',resetSequence); $('#resetButton').on('click', resetSequence);
//Module button radio selection //Module button radio selection
$('.radio-group .radio').on('click', function() { $('.radio-group .radio').on('click', function() {
@@ -113,7 +113,7 @@ window.onload = function() {
var button = event.target; var button = event.target;
button.disabled = true; button.disabled = true;
button.innerHTML='<i class="fa fa-circle-o-notch fa-spin"></i>'; button.innerHTML = '<i class="fa fa-circle-o-notch fa-spin"></i>';
try { try {
// Select all images from previous steps // Select all images from previous steps
@@ -187,34 +187,34 @@ window.onload = function() {
onLoad: function onFileReaderLoad(progress) { onLoad: function onFileReaderLoad(progress) {
var reader = progress.target; var reader = progress.target;
var step = sequencer.steps[0]; var step = sequencer.steps[0];
var util= intermediateHtmlStepUi(sequencer); var util = intermediateHtmlStepUi(sequencer);
step.output.src = reader.result; step.output.src = reader.result;
sequencer.run({ index: 0 }); sequencer.run({ index: 0 });
if(typeof step.options !=='undefined') if(typeof step.options !== 'undefined')
step.options.step.imgElement.src = reader.result; step.options.step.imgElement.src = reader.result;
else else
step.imgElement.src = reader.result; step.imgElement.src = reader.result;
insertPreview.updatePreviews(reader.result,'#addStep'); insertPreview.updatePreviews(reader.result, '#addStep');
insertPreview.updatePreviews(sequencer.steps[0].imgElement.src,'.insertDiv'); insertPreview.updatePreviews(sequencer.steps[0].imgElement.src, '.insertDiv');
}, },
onTakePhoto: function (url) { onTakePhoto: function (url) {
var step = sequencer.steps[0]; var step = sequencer.steps[0];
step.output.src = url; step.output.src = url;
sequencer.run({ index: 0 }); sequencer.run({ index: 0 });
if(typeof step.options !=='undefined') if(typeof step.options !== 'undefined')
step.options.step.imgElement.src = url; step.options.step.imgElement.src = url;
else else
step.imgElement.src = url; step.imgElement.src = url;
insertPreview.updatePreviews(url,'#addStep'); insertPreview.updatePreviews(url, '#addStep');
insertPreview.updatePreviews(sequencer.steps[0].imgElement.src,'.insertDiv'); insertPreview.updatePreviews(sequencer.steps[0].imgElement.src, '.insertDiv');
} }
}); });
setupCache(); setupCache();
if (urlHash.getUrlHashParameter('src')) { if (urlHash.getUrlHashParameter('src')) {
insertPreview.updatePreviews(urlHash.getUrlHashParameter('src'),'#addStep'); insertPreview.updatePreviews(urlHash.getUrlHashParameter('src'), '#addStep');
} else { } else {
insertPreview.updatePreviews('images/tulips.png','#addStep'); insertPreview.updatePreviews('images/tulips.png', '#addStep');
} }
}; };

View File

@@ -8,7 +8,7 @@ function DefaultHtmlSequencerUi(_sequencer, options) {
function onLoad() { function onLoad() {
importStepsFromUrlHash(); importStepsFromUrlHash();
if ($('#selectStep').val()==='none') if ($('#selectStep').val() === 'none')
$(addStepSel + ' #add-step-btn').prop('disabled', true); $(addStepSel + ' #add-step-btn').prop('disabled', true);
handleSaveSequence(); handleSaveSequence();
} }
@@ -73,8 +73,8 @@ function DefaultHtmlSequencerUi(_sequencer, options) {
} }
function handleSaveSequence(){ function handleSaveSequence(){
var stepCount=sequencer.steps.length; var stepCount = sequencer.steps.length;
if(stepCount<2) if(stepCount < 2)
$(' #save-seq').prop('disabled', true); $(' #save-seq').prop('disabled', true);
else else
$(' #save-seq').prop('disabled', false); $(' #save-seq').prop('disabled', false);

View File

@@ -30,7 +30,7 @@ function DefaultHtmlStepUi(_sequencer, options) {
<div class="panel-heading">\ <div class="panel-heading">\
<div class="trash-container pull-right"></div>\ <div class="trash-container pull-right"></div>\
<h3 class="panel-title">' + <h3 class="panel-title">' +
'<span class="toggle">' +step.name + ' <span class="caret toggleIcon rotated"></span>\ '<span class="toggle">' + step.name + ' <span class="caret toggleIcon rotated"></span>\
<span class="load-spin pull-right" style="display:none;padding:1px 8px;"><i class="fa fa-circle-o-notch fa-spin"></i></span>\ <span class="load-spin pull-right" style="display:none;padding:1px 8px;"><i class="fa fa-circle-o-notch fa-spin"></i></span>\
</h3>\ </h3>\
</div>\ </div>\
@@ -106,7 +106,7 @@ function DefaultHtmlStepUi(_sequencer, options) {
'"max="' + '"max="' +
inputDesc.max + inputDesc.max +
'"step="' + '"step="' +
(inputDesc.step ? inputDesc.step : 1)+ '">' + '<span>' + paramVal + '</span>'; (inputDesc.step ? inputDesc.step : 1) + '">' + '<span>' + paramVal + '</span>';
} }
else html += '">'; else html += '">';
@@ -147,14 +147,14 @@ function DefaultHtmlStepUi(_sequencer, options) {
.prepend( .prepend(
parser.parseFromString(tools, 'text/html').querySelector('div') parser.parseFromString(tools, 'text/html').querySelector('div')
); );
$(step.ui.querySelectorAll('.remove')).on('click', function() {notify('Step Removed','remove-notification');}); $(step.ui.querySelectorAll('.remove')).on('click', function() {notify('Step Removed', 'remove-notification');});
$(step.ui.querySelectorAll('.insert-step')).on('click', function() { util.insertStep(step.ID); }); $(step.ui.querySelectorAll('.insert-step')).on('click', function() { util.insertStep(step.ID); });
// Insert the step's UI in the right place // Insert the step's UI in the right place
if (stepOptions.index == _sequencer.steps.length) { if (stepOptions.index == _sequencer.steps.length) {
stepsEl.appendChild(step.ui); stepsEl.appendChild(step.ui);
$('#steps .step-container:nth-last-child(1) .insert-step').prop('disabled',true); $('#steps .step-container:nth-last-child(1) .insert-step').prop('disabled', true);
if($('#steps .step-container:nth-last-child(2)')) if($('#steps .step-container:nth-last-child(2)'))
$('#steps .step-container:nth-last-child(2) .insert-step').prop('disabled',false); $('#steps .step-container:nth-last-child(2) .insert-step').prop('disabled', false);
} else { } else {
stepsEl.insertBefore(step.ui, $(stepsEl).children()[stepOptions.index]); stepsEl.insertBefore(step.ui, $(stepsEl).children()[stepOptions.index]);
} }
@@ -209,7 +209,7 @@ function DefaultHtmlStepUi(_sequencer, options) {
$(input) $(input)
.data('initValue', $(input).val()) .data('initValue', $(input).val())
.data('hasChangedBefore', false) .data('hasChangedBefore', false)
.on('input change' , function() { .on('input change', function() {
$(this) $(this)
.focus() .focus()
.data('hasChangedBefore', .data('hasChangedBefore',
@@ -302,19 +302,19 @@ function DefaultHtmlStepUi(_sequencer, options) {
canvas.width = img.width(); canvas.width = img.width();
canvas.height = img.height(); canvas.height = img.height();
var context = canvas.getContext('2d'); var context = canvas.getContext('2d');
context.drawImage(this,0,0); context.drawImage(this, 0, 0);
var offset = $(this).offset(); var offset = $(this).offset();
var xPos = e.pageX - offset.left; var xPos = e.pageX - offset.left;
var yPos = e.pageY - offset.top; var yPos = e.pageY - offset.top;
var myData = context.getImageData(xPos, yPos, 1, 1); var myData = context.getImageData(xPos, yPos, 1, 1);
img[0].title = 'rgb: ' +myData.data[0]+','+ myData.data[1]+','+myData.data[2];//+ rgbdata; img[0].title = 'rgb: ' + myData.data[0] + ',' + myData.data[1] + ',' + myData.data[2];//+ rgbdata;
}); });
} }
function onRemove(step) { function onRemove(step) {
step.ui.remove(); step.ui.remove();
$('#steps .step-container:nth-last-child(1) .insert-step').prop('disabled',true); $('#steps .step-container:nth-last-child(1) .insert-step').prop('disabled', true);
$('div[class*=imgareaselect-]').remove(); $('div[class*=imgareaselect-]').remove();
} }
@@ -322,8 +322,8 @@ function DefaultHtmlStepUi(_sequencer, options) {
return step.imgElement; return step.imgElement;
} }
function notify(msg,id){ function notify(msg, id){
if ($('#'+id).length == 0) { if ($('#' + id).length == 0) {
var notification = document.createElement('span'); var notification = document.createElement('span');
notification.innerHTML = ' <i class="fa fa-info-circle" aria-hidden="true"></i> ' + msg ; notification.innerHTML = ' <i class="fa fa-info-circle" aria-hidden="true"></i> ' + msg ;
notification.id = id; notification.id = id;
@@ -332,7 +332,7 @@ function DefaultHtmlStepUi(_sequencer, options) {
$('body').append(notification); $('body').append(notification);
} }
$('#'+id).fadeIn(500).delay(200).fadeOut(500); $('#' + id).fadeIn(500).delay(200).fadeOut(500);
} }
@@ -348,7 +348,7 @@ function DefaultHtmlStepUi(_sequencer, options) {
} }
if(typeof window === 'undefined'){ if(typeof window === 'undefined'){
module.exports={ module.exports = {
DefaultHtmlStepUi: DefaultHtmlStepUi DefaultHtmlStepUi: DefaultHtmlStepUi
}; };
} }

View File

@@ -27,7 +27,7 @@ function generatePreview(previewStepName, customValues, path, selector) {
} }
function updatePreviews(src, selector) { function updatePreviews(src, selector) {
$(selector+' img').remove(); $(selector + ' img').remove();
var previewSequencerSteps = { var previewSequencerSteps = {
'resize': '125%', 'resize': '125%',

View File

@@ -61,7 +61,7 @@ else {
} }
}, },
notify: function(msg) { notify: function(msg) {
console.log('\x1b[36m%s\x1b[0m','🌟 '+msg); console.log('\x1b[36m%s\x1b[0m', '🌟 ' + msg);
} }
}); });

View File

@@ -7,11 +7,11 @@ describe('Default sequencer HTML', function() {
beforeEach(()=>{ beforeEach(()=>{
defaultHtmlSequencerUi = new DefaultHtmlSequencerUi(sequencer); defaultHtmlSequencerUi = new DefaultHtmlSequencerUi(sequencer);
spyOn(defaultHtmlSequencerUi,'onLoad'); spyOn(defaultHtmlSequencerUi, 'onLoad');
spyOn(defaultHtmlSequencerUi,'selectNewStepUi'); spyOn(defaultHtmlSequencerUi, 'selectNewStepUi');
spyOn(defaultHtmlSequencerUi,'removeStepUi'); spyOn(defaultHtmlSequencerUi, 'removeStepUi');
spyOn(defaultHtmlSequencerUi,'addStepUi'); spyOn(defaultHtmlSequencerUi, 'addStepUi');
spyOn(defaultHtmlSequencerUi,'importStepsFromUrlHash'); spyOn(defaultHtmlSequencerUi, 'importStepsFromUrlHash');
defaultHtmlSequencerUi.onLoad(); defaultHtmlSequencerUi.onLoad();
defaultHtmlSequencerUi.selectNewStepUi(); defaultHtmlSequencerUi.selectNewStepUi();

View File

@@ -18,19 +18,19 @@ describe('Sequencer step HTML', function() {
beforeEach(()=>{ beforeEach(()=>{
defaultHtmlStepUi = new DefaultHtmlStepUi(sequencer); defaultHtmlStepUi = new DefaultHtmlStepUi(sequencer);
spyOn(defaultHtmlStepUi,'getPreview'); spyOn(defaultHtmlStepUi, 'getPreview');
spyOn(defaultHtmlStepUi,'onSetup'); spyOn(defaultHtmlStepUi, 'onSetup');
spyOn(defaultHtmlStepUi,'onComplete'); spyOn(defaultHtmlStepUi, 'onComplete');
spyOn(defaultHtmlStepUi,'onDraw'); spyOn(defaultHtmlStepUi, 'onDraw');
spyOn(defaultHtmlStepUi,'onRemove'); spyOn(defaultHtmlStepUi, 'onRemove');
spyOn(defaultHtmlStepUi,'notify'); spyOn(defaultHtmlStepUi, 'notify');
defaultHtmlStepUi.getPreview(); defaultHtmlStepUi.getPreview();
defaultHtmlStepUi.onSetup(step,options); defaultHtmlStepUi.onSetup(step, options);
defaultHtmlStepUi.onComplete(step); defaultHtmlStepUi.onComplete(step);
defaultHtmlStepUi.onDraw(step); defaultHtmlStepUi.onDraw(step);
defaultHtmlStepUi.onRemove(step); defaultHtmlStepUi.onRemove(step);
defaultHtmlStepUi.notify('Step removed','remove-notification'); defaultHtmlStepUi.notify('Step removed', 'remove-notification');
}); });
@@ -39,7 +39,7 @@ describe('Sequencer step HTML', function() {
}); });
it('load initial setup ui', function() { it('load initial setup ui', function() {
expect(defaultHtmlStepUi.onSetup).toHaveBeenCalledWith(step,options); expect(defaultHtmlStepUi.onSetup).toHaveBeenCalledWith(step, options);
}); });
it('load completion ui', function() { it('load completion ui', function() {
@@ -55,7 +55,7 @@ describe('Sequencer step HTML', function() {
}); });
it('notification ui', function() { it('notification ui', function() {
expect(defaultHtmlStepUi.notify).toHaveBeenCalledWith('Step removed','remove-notification'); expect(defaultHtmlStepUi.notify).toHaveBeenCalledWith('Step removed', 'remove-notification');
}); });
}); });

View File

@@ -8,19 +8,19 @@ describe('Preview UI HTML', function() {
beforeEach(()=>{ beforeEach(()=>{
insertPreview = InsertPreview; insertPreview = InsertPreview;
spyOn(insertPreview,'generatePreview'); spyOn(insertPreview, 'generatePreview');
spyOn(insertPreview,'updatePreviews'); spyOn(insertPreview, 'updatePreviews');
insertPreview.generatePreview('brightness',options,'src','selector'); insertPreview.generatePreview('brightness', options, 'src', 'selector');
insertPreview.updatePreviews('src','selector'); insertPreview.updatePreviews('src', 'selector');
}); });
it('generate preview ui', function() { it('generate preview ui', function() {
expect(insertPreview.generatePreview).toHaveBeenCalledWith('brightness',options,'src','selector'); expect(insertPreview.generatePreview).toHaveBeenCalledWith('brightness', options, 'src', 'selector');
}); });
it('update preview ui', function() { it('update preview ui', function() {
expect(insertPreview.updatePreviews).toHaveBeenCalledWith('src','selector'); expect(insertPreview.updatePreviews).toHaveBeenCalledWith('src', 'selector');
}); });
}); });

View File

@@ -7,7 +7,7 @@ describe('Intermediate step HTML', function() {
beforeEach(()=>{ beforeEach(()=>{
intermediateHtmlStepUi = new IntermediateHtmlStepUi(sequencer); intermediateHtmlStepUi = new IntermediateHtmlStepUi(sequencer);
spyOn(intermediateHtmlStepUi,'insertStep'); spyOn(intermediateHtmlStepUi, 'insertStep');
intermediateHtmlStepUi.insertStep(); intermediateHtmlStepUi.insertStep();
}); });

View File

@@ -10,15 +10,15 @@ describe('URL manipulation methods', function() {
beforeEach(()=>{ beforeEach(()=>{
urlHash = UrlHash; urlHash = UrlHash;
spyOn(urlHash,'getUrlHashParameters'); spyOn(urlHash, 'getUrlHashParameters');
spyOn(urlHash,'getUrlHashParameter'); spyOn(urlHash, 'getUrlHashParameter');
spyOn(urlHash,'setUrlHashParameters'); spyOn(urlHash, 'setUrlHashParameters');
spyOn(urlHash,'setUrlHashParameter'); spyOn(urlHash, 'setUrlHashParameter');
urlHash.getUrlHashParameters(); urlHash.getUrlHashParameters();
urlHash.getUrlHashParameter('module'); urlHash.getUrlHashParameter('module');
urlHash.setUrlHashParameters(params); urlHash.setUrlHashParameters(params);
urlHash.setUrlHashParameter('module','brightness'); urlHash.setUrlHashParameter('module', 'brightness');
}); });
it('gets url hash params from window hash', function() { it('gets url hash params from window hash', function() {
@@ -34,7 +34,7 @@ describe('URL manipulation methods', function() {
}); });
it('accepts param key-value pair and sets url hash params', function() { it('accepts param key-value pair and sets url hash params', function() {
expect(urlHash.setUrlHashParameter).toHaveBeenCalledWith('module','brightness'); expect(urlHash.setUrlHashParameter).toHaveBeenCalledWith('module', 'brightness');
}); });
}); });

View File

@@ -1,5 +1,5 @@
// add steps to the sequencer // add steps to the sequencer
function AddStep(_sequencer, name, o) { function AddStep(_sequencer, name, o) {
return require('./InsertStep')(_sequencer,-1,name,o); return require('./InsertStep')(_sequencer, -1, name, o);
} }
module.exports = AddStep; module.exports = AddStep;

View File

@@ -4,9 +4,9 @@ var fs = require('fs');
* This function checks if the directory exists, if not it creates one on the given path * This function checks if the directory exists, if not it creates one on the given path
* Callback is called with argument error if an error is encountered * Callback is called with argument error if an error is encountered
*/ */
function makedir(path,callback){ function makedir(path, callback){
fs.access(path,function(err){ fs.access(path, function(err){
if(err) fs.mkdir(path,function(err){ if(err) fs.mkdir(path, function(err){
if(err) callback(err); if(err) callback(err);
callback(); callback();
}); });

View File

@@ -1,13 +1,13 @@
function objTypeOf(object){ function objTypeOf(object){
return Object.prototype.toString.call(object).split(' ')[1].slice(0,-1); return Object.prototype.toString.call(object).split(' ')[1].slice(0, -1);
} }
function getPrimitive(object){ function getPrimitive(object){
return (objTypeOf(object)=='Array')?object[0]:object; return (objTypeOf(object) == 'Array') ? object[0] : object;
} }
function makeArray(input) { function makeArray(input) {
return (objTypeOf(input)=='Array')?input:[input]; return (objTypeOf(input) == 'Array') ? input : [input];
} }
function copy(a) { function copy(a) {
@@ -23,7 +23,7 @@ function copy(a) {
return a; return a;
} }
function formatInput(args,format,images) { function formatInput(args, format, images) {
var json_q = {}; var json_q = {};
var format_i = format; var format_i = format;
if (format == '+') if (format == '+')
@@ -35,26 +35,26 @@ function formatInput(args,format,images) {
else if (format == 'r') else if (format == 'r')
format = ['o_number']; format = ['o_number'];
else if (format == 'l') else if (format == 'l')
format = ['string','o_function']; format = ['string', 'o_function'];
if(format[format.length-1] == 'o_object') { if(format[format.length - 1] == 'o_object') {
if(objTypeOf(args[args.length-1]) != 'Object') if(objTypeOf(args[args.length - 1]) != 'Object')
args.push({}); args.push({});
} }
else if (format[format.length-1] == 'o_number') { else if (format[format.length - 1] == 'o_number') {
if(typeof(args[args.length-1]) != 'number' && objTypeOf(args[0])!='Object') if(typeof(args[args.length - 1]) != 'number' && objTypeOf(args[0]) != 'Object')
args.push(1); args.push(1);
} }
else if (format[format.length-1] == 'o_function') { else if (format[format.length - 1] == 'o_function') {
if(objTypeOf(args[args.length-1]) != 'Function' && objTypeOf(args[0])!='Object') if(objTypeOf(args[args.length - 1]) != 'Function' && objTypeOf(args[0]) != 'Object')
args.push(function(){}); args.push(function(){});
} }
if(args.length == format.length) {//making of arrays if(args.length == format.length) {//making of arrays
for (var i in format) { for (var i in format) {
if (format[i].substr(format[i].length-2,2)=='_a') if (format[i].substr(format[i].length - 2, 2) == '_a')
args[i] = makeArray(args[i]); args[i] = makeArray(args[i]);
} }
} }
@@ -62,8 +62,8 @@ function formatInput(args,format,images) {
if (args.length == 1 ) { if (args.length == 1 ) {
if(format_i == 'r') json_q = {0:copy(args[0])}; if(format_i == 'r') json_q = {0:copy(args[0])};
else if(format_i == '-') { else if(format_i == '-') {
json_q=[]; json_q = [];
json_q= copy(args[0]); json_q = copy(args[0]);
} }
} }
else if (format_i == 'r' ) { else if (format_i == 'r' ) {
@@ -90,8 +90,8 @@ function formatInput(args,format,images) {
if(format_i == '^') { if(format_i == '^') {
var size = this.steps.length; var size = this.steps.length;
var index = args[0]; var index = args[0];
index = (index==size)?index:index%size; index = (index == size) ? index : index % size;
if (index<0) index += size+1; if (index < 0) index += size + 1;
json_q.push({ json_q.push({
index: index, index: index,
name: args[1], name: args[1],

View File

@@ -152,7 +152,7 @@ ImageSequencer = function ImageSequencer(options) {
sequencer.image = arguments[0]; sequencer.image = arguments[0];
for (var arg in arguments) args.push(copy(arguments[arg])); for (var arg in arguments) args.push(copy(arguments[arg]));
var json_q = formatInput.call(this, args, 'l'); var json_q = formatInput.call(this, args, 'l');
if(this.getSteps().length!=0){ if(this.getSteps().length != 0){
this.options.sequencerCounter = 0; this.options.sequencerCounter = 0;
inputlog = []; inputlog = [];
this.steps = []; this.steps = [];
@@ -169,9 +169,9 @@ ImageSequencer = function ImageSequencer(options) {
setUI: this.setUI setUI: this.setUI
}; };
function loadPrevSteps(ref){ function loadPrevSteps(ref){
if(prevSteps.length!=0){ if(prevSteps.length != 0){
ref.addSteps(prevSteps); ref.addSteps(prevSteps);
prevSteps=[]; prevSteps = [];
} }
} }
require('./ui/LoadImage')(sequencer, 'image', json_q.image, function() { require('./ui/LoadImage')(sequencer, 'image', json_q.image, function() {

View File

@@ -1,6 +1,6 @@
// Uses a given image as input and replaces it with the output. // Uses a given image as input and replaces it with the output.
// Works only in the browser. // Works only in the browser.
function ReplaceImage(ref,selector,steps,options) { function ReplaceImage(ref, selector, steps, options) {
if(!ref.options.inBrowser) return false; // This isn't for Node.js if(!ref.options.inBrowser) return false; // This isn't for Node.js
var tempSequencer = ImageSequencer({ui: false}); var tempSequencer = ImageSequencer({ui: false});
var this_ = ref; var this_ = ref;
@@ -26,18 +26,18 @@ function ReplaceImage(ref,selector,steps,options) {
// https://github.com/publiclab/image-sequencer/issues/241 // https://github.com/publiclab/image-sequencer/issues/241
// https://stackoverflow.com/a/20048852/1116657 // https://stackoverflow.com/a/20048852/1116657
var raw = ''; var raw = '';
var i,j,subArray,chunk = 5000; var i, j, subArray, chunk = 5000;
for (i=0,j=arr.length; i<j; i+=chunk) { for (i = 0, j = arr.length; i < j; i += chunk) {
subArray = arr.subarray(i,i+chunk); subArray = arr.subarray(i, i + chunk);
raw += String.fromCharCode.apply(null, subArray); raw += String.fromCharCode.apply(null, subArray);
} }
var base64 = btoa(raw); var base64 = btoa(raw);
var dataURL='data:image/'+ext+';base64,' + base64; var dataURL = 'data:image/' + ext + ';base64,' + base64;
make(dataURL); make(dataURL);
}; };
if(url.substr(0,11).toLowerCase()!='data:image/') xmlHTTP.send(); if(url.substr(0, 11).toLowerCase() != 'data:image/') xmlHTTP.send();
else make(url); else make(url);
function make(url) { function make(url) {
@@ -46,7 +46,7 @@ function ReplaceImage(ref,selector,steps,options) {
var sequence = this.addSteps(steps); var sequence = this.addSteps(steps);
if (ref.detectStringSyntax(steps)) if (ref.detectStringSyntax(steps))
sequence = this.stringToSteps(steps); sequence = this.stringToSteps(steps);
sequence.run({stop:function(){}},function(out){ sequence.run({stop:function(){}}, function(out){
img.src = out; img.src = out;
}); });
}); });
@@ -54,8 +54,8 @@ function ReplaceImage(ref,selector,steps,options) {
} }
for (var i = 0; i < images.length; i++) { for (var i = 0; i < images.length; i++) {
replaceImage(images[i],steps); replaceImage(images[i], steps);
if (i == images.length-1) if (i == images.length - 1)
options.callback(); options.callback();
} }
} }

View File

@@ -3,7 +3,7 @@ module.exports = function(steps, modulesInfo, addSteps, copy) {
function toCliString() { function toCliString() {
var cliStringSteps = '"', cliOptions = {}; var cliStringSteps = '"', cliOptions = {};
for (var step in this.steps) { for (var step in this.steps) {
var name = (typeof this.steps[step].options !== 'undefined')? this.steps[step].options.name : this.steps[step].name; var name = (typeof this.steps[step].options !== 'undefined') ? this.steps[step].options.name : this.steps[step].name;
if (name !== 'load-image'){ if (name !== 'load-image'){
cliStringSteps += `${name} `; cliStringSteps += `${name} `;
} }
@@ -52,7 +52,7 @@ module.exports = function(steps, modulesInfo, addSteps, copy) {
// Stringifies one step of the sequence // Stringifies one step of the sequence
function stepToString(step) { function stepToString(step) {
var arg = (step.name)?step.name:step.options.name; var arg = (step.name) ? step.name : step.options.name;
let inputs = modulesInfo(arg).inputs || {}, op = {}; let inputs = modulesInfo(arg).inputs || {}, op = {};
for (let input in inputs) { for (let input in inputs) {

View File

@@ -18,7 +18,7 @@ module.exports = function AddQR(options, UI) {
return [r, g, b, a]; return [r, g, b, a];
} }
function extraManipulation(pixels,generateOutput) { function extraManipulation(pixels, generateOutput) {
if (err) { if (err) {
console.log(err); console.log(err);
return; return;

View File

@@ -58,118 +58,118 @@ var colormaps = {
]), ]),
bluwhtgrngis: colormap([ bluwhtgrngis: colormap([
[0, [6,23,86], [6,25, 84] ], [0, [6, 23, 86], [6, 25, 84] ],
[0.0625, [6,25,84], [6,25, 84] ],//1 [0.0625, [6, 25, 84], [6, 25, 84] ], //1
[0.125, [6,25,84], [6,25, 84] ],//2 [0.125, [6, 25, 84], [6, 25, 84] ], //2
[0.1875, [6,25,84], [6,25, 84] ], [0.1875, [6, 25, 84], [6, 25, 84] ],
[0.25, [6,25,84], [6,25,84] ], [0.25, [6, 25, 84], [6, 25, 84] ],
[0.3125, [6,25,84], [9,24, 84] ],//5 [0.3125, [6, 25, 84], [9, 24, 84] ], //5
[0.3438, [9,24, 84], [119,120,162] ],//5 [0.3438, [9, 24, 84], [119, 120, 162] ], //5
[0.375, [119,129,162],[249,250,251] ], //6 [0.375, [119, 129, 162], [249, 250, 251] ], //6
[0.406, [249,250,251],[255,255,255] ], //6.5 [0.406, [249, 250, 251], [255, 255, 255] ], //6.5
[0.4375, [255,255,255],[255,255,255] ], //7 white [0.4375, [255, 255, 255], [255, 255, 255] ], //7 white
[0.50, [255,255,255],[214,205,191] ],//8 [0.50, [255, 255, 255], [214, 205, 191] ], //8
[0.52, [214,205,191],[178,175,96] ],//8.2 [0.52, [214, 205, 191], [178, 175, 96] ], //8.2
[0.5625, [178,175,96], [151,176,53] ],//9 [0.5625, [178, 175, 96], [151, 176, 53] ], //9
[0.593, [151,176,53], [146,188,12] ],//9.5 [0.593, [151, 176, 53], [146, 188, 12] ], //9.5
[0.625, [146,188,12], [96,161,1] ], //10 [0.625, [146, 188, 12], [96, 161, 1] ], //10
[0.6875, [96,161,1], [30,127,3] ],//11 [0.6875, [96, 161, 1], [30, 127, 3] ], //11
[0.75, [30,127,3], [0,99,1] ],//12 [0.75, [30, 127, 3], [0, 99, 1] ], //12
[0.8125, [0,99,1], [0,74,1] ],//13 [0.8125, [0, 99, 1], [0, 74, 1] ], //13
[0.875, [0,74,1], [0,52, 0] ],//14 [0.875, [0, 74, 1], [0, 52, 0] ], //14
[0.9375, [0,52, 0], [0,34,0] ], //15 [0.9375, [0, 52, 0], [0, 34, 0] ], //15
[0.968, [0,34,0], [68,70,67] ] //16 [0.968, [0, 34, 0], [68, 70, 67] ] //16
]), ]),
brntogrn: colormap([ brntogrn: colormap([
[0, [110,12,3], [118,6,1] ], [0, [110, 12, 3], [118, 6, 1] ],
[0.0625, [118,6,1], [141,19,6] ], [0.0625, [118, 6, 1], [141, 19, 6] ],
[0.125, [141,19,6], [165,35,13] ], [0.125, [141, 19, 6], [165, 35, 13] ],
[0.1875, [165,35,13], [177,59,25] ], [0.1875, [165, 35, 13], [177, 59, 25] ],
[0.2188, [177,59,25], [192,91,36] ], [0.2188, [177, 59, 25], [192, 91, 36] ],
[0.25, [192,91,36], [214, 145, 76] ], [0.25, [192, 91, 36], [214, 145, 76] ],
[0.3125, [214,145,76], [230,183,134] ], [0.3125, [214, 145, 76], [230, 183, 134] ],
[0.375, [230,183,134],[243, 224, 194]], [0.375, [230, 183, 134], [243, 224, 194]],
[0.4375, [243,224,194],[250,252,229] ], [0.4375, [243, 224, 194], [250, 252, 229] ],
[0.50, [250,252,229],[217,235,185] ], [0.50, [250, 252, 229], [217, 235, 185] ],
[0.5625, [217,235,185],[184,218,143] ], [0.5625, [217, 235, 185], [184, 218, 143] ],
[0.625, [184,218,143],[141,202,89] ], [0.625, [184, 218, 143], [141, 202, 89] ],
[0.6875, [141,202,89], [80,176,61] ], [0.6875, [141, 202, 89], [80, 176, 61] ],
[0.75, [80,176,61], [0, 147, 32] ], [0.75, [80, 176, 61], [0, 147, 32] ],
[0.8125, [0,147,32], [1, 122, 22] ], [0.8125, [0, 147, 32], [1, 122, 22] ],
[0.875, [1,122,22], [0, 114, 19] ], [0.875, [1, 122, 22], [0, 114, 19] ],
[0.90, [0,114,19], [0,105,18] ], [0.90, [0, 114, 19], [0, 105, 18] ],
[0.9375, [0,105,18], [7,70,14] ] [0.9375, [0, 105, 18], [7, 70, 14] ]
]), ]),
blutoredjet: colormap([ blutoredjet: colormap([
[0, [0,0,140], [1,1,186] ], [0, [0, 0, 140], [1, 1, 186] ],
[0.0625, [1,1,186], [0,1,248] ], [0.0625, [1, 1, 186], [0, 1, 248] ],
[0.125, [0,1,248], [0,70,254] ], [0.125, [0, 1, 248], [0, 70, 254] ],
[0.1875, [0,70,254], [0,130,255] ], [0.1875, [0, 70, 254], [0, 130, 255] ],
[0.25, [0,130,255], [2,160,255] ], [0.25, [0, 130, 255], [2, 160, 255] ],
[0.2813, [2,160,255], [0,187,255] ], //inset [0.2813, [2, 160, 255], [0, 187, 255] ], //inset
[0.3125, [0,187,255], [6,250,255] ], [0.3125, [0, 187, 255], [6, 250, 255] ],
// [0.348, [0,218,255], [8,252,251] ],//inset // [0.348, [0,218,255], [8,252,251] ],//inset
[0.375, [8,252,251], [27,254,228] ], [0.375, [8, 252, 251], [27, 254, 228] ],
[0.406, [27,254,228], [70,255,187] ], //insert [0.406, [27, 254, 228], [70, 255, 187] ], //insert
[0.4375, [70,255,187], [104,254,151]], [0.4375, [70, 255, 187], [104, 254, 151]],
[0.47, [104,254,151],[132,255,19] ],//insert [0.47, [104, 254, 151], [132, 255, 19] ], //insert
[0.50, [132,255,19], [195,255,60] ], [0.50, [132, 255, 19], [195, 255, 60] ],
[0.5625, [195,255,60], [231,254,25] ], [0.5625, [195, 255, 60], [231, 254, 25] ],
[0.5976, [231,254,25], [253,246,1] ],//insert [0.5976, [231, 254, 25], [253, 246, 1] ], //insert
[0.625, [253,246,1], [252,210,1] ], //yellow [0.625, [253, 246, 1], [252, 210, 1] ], //yellow
[0.657, [252,210,1], [255,183,0] ],//insert [0.657, [252, 210, 1], [255, 183, 0] ], //insert
[0.6875, [255,183,0], [255,125,2] ], [0.6875, [255, 183, 0], [255, 125, 2] ],
[0.75, [255,125,2], [255,65, 1] ], [0.75, [255, 125, 2], [255, 65, 1] ],
[0.8125, [255,65, 1], [247, 1, 1] ], [0.8125, [255, 65, 1], [247, 1, 1] ],
[0.875, [247,1,1], [200, 1, 3] ], [0.875, [247, 1, 1], [200, 1, 3] ],
[0.9375, [200,1,3], [122, 3, 2] ] [0.9375, [200, 1, 3], [122, 3, 2] ]
]), ]),
colors16: colormap([ colors16: colormap([
[0, [0,0,0], [0,0,0] ], [0, [0, 0, 0], [0, 0, 0] ],
[0.0625, [3,1,172], [3,1,172] ], [0.0625, [3, 1, 172], [3, 1, 172] ],
[0.125, [3,1,222], [3,1, 222] ], [0.125, [3, 1, 222], [3, 1, 222] ],
[0.1875, [0,111,255], [0,111,255] ], [0.1875, [0, 111, 255], [0, 111, 255] ],
[0.25, [3,172,255], [3,172,255] ], [0.25, [3, 172, 255], [3, 172, 255] ],
[0.3125, [1,226,255], [1,226,255] ], [0.3125, [1, 226, 255], [1, 226, 255] ],
[0.375, [2,255,0], [2,255,0] ], [0.375, [2, 255, 0], [2, 255, 0] ],
[0.4375, [198,254,0], [190,254,0] ], [0.4375, [198, 254, 0], [190, 254, 0] ],
[0.50, [252,255,0], [252,255,0] ], [0.50, [252, 255, 0], [252, 255, 0] ],
[0.5625, [255,223,3], [255,223,3] ], [0.5625, [255, 223, 3], [255, 223, 3] ],
[0.625, [255,143,3], [255,143,3] ], [0.625, [255, 143, 3], [255, 143, 3] ],
[0.6875, [255,95,3], [255,95,3] ], [0.6875, [255, 95, 3], [255, 95, 3] ],
[0.75, [242,0,1], [242,0,1] ], [0.75, [242, 0, 1], [242, 0, 1] ],
[0.8125, [245,0,170], [245,0,170] ], [0.8125, [245, 0, 170], [245, 0, 170] ],
[0.875, [223,180,225], [223,180,225] ], [0.875, [223, 180, 225], [223, 180, 225] ],
[0.9375, [255,255,255], [255,255, 255]] [0.9375, [255, 255, 255], [255, 255, 255]]
]), ]),
default: colormap([ default: colormap([
[0, [45,1,121], [25,1,137] ], [0, [45, 1, 121], [25, 1, 137] ],
[0.125, [25,1,137], [0,6,156] ], [0.125, [25, 1, 137], [0, 6, 156] ],
[0.1875, [0,6,156], [7,41,172] ], [0.1875, [0, 6, 156], [7, 41, 172] ],
[0.25, [7,41,172], [22,84,187] ], [0.25, [7, 41, 172], [22, 84, 187] ],
[0.3125, [22,84,187], [25,125,194] ], [0.3125, [22, 84, 187], [25, 125, 194] ],
[0.375, [25,125,194], [26,177,197] ], [0.375, [25, 125, 194], [26, 177, 197] ],
[0.4375, [26,177,197], [23,199,193] ], [0.4375, [26, 177, 197], [23, 199, 193] ],
[0.47, [23,199,193], [25, 200,170] ], [0.47, [23, 199, 193], [25, 200, 170] ],
[0.50, [25, 200,170], [21,209,27] ], [0.50, [25, 200, 170], [21, 209, 27] ],
[0.5625, [21,209,27], [108,215,18] ], [0.5625, [21, 209, 27], [108, 215, 18] ],
[0.625, [108,215,18], [166,218,19] ], [0.625, [108, 215, 18], [166, 218, 19] ],
[0.6875, [166,218,19], [206,221,20] ], [0.6875, [166, 218, 19], [206, 221, 20] ],
[0.75, [206,221,20], [222,213,19 ] ], [0.75, [206, 221, 20], [222, 213, 19 ] ],
[0.7813, [222,213,19], [222, 191, 19]], [0.7813, [222, 213, 19], [222, 191, 19]],
[0.8125, [222, 191, 19], [227,133,17] ], [0.8125, [222, 191, 19], [227, 133, 17] ],
[0.875, [227,133,17], [231,83,16] ], [0.875, [227, 133, 17], [231, 83, 16] ],
[0.9375, [231,83,16], [220,61,48] ] [0.9375, [231, 83, 16], [220, 61, 48] ]
]), ]),

View File

@@ -1,4 +1,4 @@
module.exports = function Crop(input,options,callback) { module.exports = function Crop(input, options, callback) {
var defaults = require('./../../util/getDefaults.js')(require('./info.json')); var defaults = require('./../../util/getDefaults.js')(require('./info.json'));
var getPixels = require('get-pixels'), var getPixels = require('get-pixels'),
savePixels = require('save-pixels'); savePixels = require('save-pixels');
@@ -6,7 +6,7 @@ module.exports = function Crop(input,options,callback) {
options.x = parseInt(options.x) || defaults.x; options.x = parseInt(options.x) || defaults.x;
options.y = parseInt(options.y) || defaults.y; options.y = parseInt(options.y) || defaults.y;
getPixels(input.src,function(err,pixels){ getPixels(input.src, function(err, pixels){
options.w = parseInt(options.w) || Math.floor(pixels.shape[0]); options.w = parseInt(options.w) || Math.floor(pixels.shape[0]);
options.h = parseInt(options.h) || Math.floor(pixels.shape[1]); options.h = parseInt(options.h) || Math.floor(pixels.shape[1]);
options.backgroundColor = options.backgroundColor || defaults.backgroundColor; options.backgroundColor = options.backgroundColor || defaults.backgroundColor;
@@ -19,26 +19,26 @@ module.exports = function Crop(input,options,callback) {
var backgroundArray = []; var backgroundArray = [];
backgroundColor = options.backgroundColor.split(' '); backgroundColor = options.backgroundColor.split(' ');
for(var i = 0; i < w ; i++){ for(var i = 0; i < w ; i++){
backgroundArray = backgroundArray.concat([backgroundColor[0],backgroundColor[1],backgroundColor[2],backgroundColor[3]]); backgroundArray = backgroundArray.concat([backgroundColor[0], backgroundColor[1], backgroundColor[2], backgroundColor[3]]);
} }
// var newarray = new Uint8Array(4*w*h); // var newarray = new Uint8Array(4*w*h);
var array = []; var array = [];
for (var n = oy; n < oy + h; n++) { for (var n = oy; n < oy + h; n++) {
var offsetValue = 4*w*n; var offsetValue = 4 * w * n;
if(n<ih){ if(n < ih){
var start = n*4*iw + ox*4; var start = n * 4 * iw + ox * 4;
var end = n*4*iw + ox*4 + 4*w; var end = n * 4 * iw + ox * 4 + 4 * w;
var pushArray = Array.from(pixels.data.slice(start, end )); var pushArray = Array.from(pixels.data.slice(start, end ));
array.push.apply(array,pushArray); array.push.apply(array, pushArray);
} else { } else {
array.push.apply(array,backgroundArray); array.push.apply(array, backgroundArray);
} }
} }
var newarray = Uint8Array.from(array); var newarray = Uint8Array.from(array);
pixels.data = newarray; pixels.data = newarray;
pixels.shape = [w,h,4]; pixels.shape = [w, h, 4];
pixels.stride[1] = 4*w; pixels.stride[1] = 4 * w;
options.format = input.format; options.format = input.format;
@@ -54,7 +54,7 @@ module.exports = function Crop(input,options,callback) {
r.on('end', function(){ r.on('end', function(){
var data = Buffer.concat(chunks, totalLength).toString('base64'); var data = Buffer.concat(chunks, totalLength).toString('base64');
var datauri = 'data:image/' + options.format + ';base64,' + data; var datauri = 'data:image/' + options.format + ';base64,' + data;
callback(datauri,options.format); callback(datauri, options.format);
}); });
}); });
}; };

View File

@@ -22,7 +22,7 @@ module.exports = function CropModule(options, UI) {
setupComplete = false; setupComplete = false;
// This function is caled everytime the step has to be redrawn // This function is caled everytime the step has to be redrawn
function draw(input,callback) { function draw(input, callback) {
var step = this; var step = this;
@@ -32,7 +32,7 @@ module.exports = function CropModule(options, UI) {
var parseCornerCoordinateInputs = require('../../util/ParseInputCoordinates'); var parseCornerCoordinateInputs = require('../../util/ParseInputCoordinates');
//parse the inputs //parse the inputs
parseCornerCoordinateInputs(options,{ parseCornerCoordinateInputs(options, {
src: input.src, src: input.src,
x: { valInp: options.x, type: 'horizontal' }, x: { valInp: options.x, type: 'horizontal' },
y: { valInp: options.y, type: 'vertical' }, y: { valInp: options.y, type: 'vertical' },

View File

@@ -1,31 +1,31 @@
/* /*
* Decodes QR from a given image. * Decodes QR from a given image.
*/ */
module.exports = function DoNothing(options,UI) { module.exports = function DoNothing(options, UI) {
var output; var output;
var jsQR = require('jsqr'); var jsQR = require('jsqr');
var getPixels = require('get-pixels'); var getPixels = require('get-pixels');
// This function is called everytime a step has to be redrawn // This function is called everytime a step has to be redrawn
function draw(input,callback,progressObj) { function draw(input, callback, progressObj) {
progressObj.stop(true); progressObj.stop(true);
progressObj.overrideFlag = true; progressObj.overrideFlag = true;
var step = this; var step = this;
getPixels(input.src,function(err,pixels){ getPixels(input.src, function(err, pixels){
if(err) throw err; if(err) throw err;
var w = pixels.shape[0]; var w = pixels.shape[0];
var h = pixels.shape[1]; var h = pixels.shape[1];
var decoded = jsQR(pixels.data,w,h); var decoded = jsQR(pixels.data, w, h);
// Tell Image Sequencer that this step is complete // Tell Image Sequencer that this step is complete
options.step.qrval = (decoded)?decoded.data:'undefined'; options.step.qrval = (decoded) ? decoded.data : 'undefined';
}); });
function output(image, datauri, mimetype){ function output(image, datauri, mimetype){

View File

@@ -2,7 +2,7 @@ module.exports = function Dither(options, UI){
var defaults = require('./../../util/getDefaults.js')(require('./info.json')); var defaults = require('./../../util/getDefaults.js')(require('./info.json'));
var output; var output;
function draw(input,callback,progressObj){ function draw(input, callback, progressObj){
progressObj.stop(true); progressObj.stop(true);
progressObj.overrideFlag = true; progressObj.overrideFlag = true;

View File

@@ -9,13 +9,13 @@ module.exports = exports = function(pixels, options){
ih = pixels.shape[1], ih = pixels.shape[1],
thickness = Number(options.thickness) || defaults.thickness, thickness = Number(options.thickness) || defaults.thickness,
ex = options.endX = Number(options.endX) - thickness || iw - 1, ex = options.endX = Number(options.endX) - thickness || iw - 1,
ey = options.endY = Number(options.endY) -thickness || ih - 1, ey = options.endY = Number(options.endY) - thickness || ih - 1,
color = options.color || defaults.color; color = options.color || defaults.color;
color = color.split(' '); color = color.split(' ');
var drawSide = function(startX, startY, endX, endY){ var drawSide = function(startX, startY, endX, endY){
for (var n=startX; n <= endX+thickness; n++){ for (var n = startX; n <= endX + thickness; n++){
for (var k=startY; k <= endY+thickness; k++){ for (var k = startY; k <= endY + thickness; k++){
pixels.set(n, k, 0, color[0]); pixels.set(n, k, 0, color[0]);
pixels.set(n, k, 1, color[1]); pixels.set(n, k, 1, color[1]);
pixels.set(n, k, 2, color[2]); pixels.set(n, k, 2, color[2]);

View File

@@ -1,9 +1,9 @@
module.exports = function Dynamic(options,UI) { module.exports = function Dynamic(options, UI) {
var output; var output;
// This function is called on every draw. // This function is called on every draw.
function draw(input,callback,progressObj) { function draw(input, callback, progressObj) {
progressObj.stop(true); progressObj.stop(true);
progressObj.overrideFlag = true; progressObj.overrideFlag = true;
@@ -45,12 +45,12 @@ module.exports = function Dynamic(options,UI) {
} }
/* Functions to get the neighbouring pixel by position (x,y) */ /* Functions to get the neighbouring pixel by position (x,y) */
function getNeighbourPixel(pixels,curX,curY,distX,distY){ function getNeighbourPixel(pixels, curX, curY, distX, distY){
return [ return [
pixels.get(curX+distX,curY+distY,0) pixels.get(curX + distX, curY + distY, 0),
,pixels.get(curX+distX,curY+distY,1) pixels.get(curX + distX, curY + distY, 1),
,pixels.get(curX+distX,curY+distY,2) pixels.get(curX + distX, curY + distY, 2),
,pixels.get(curX+distX,curY+distY,3) pixels.get(curX + distX, curY + distY, 3)
]; ];
} }
@@ -71,7 +71,7 @@ module.exports = function Dynamic(options,UI) {
} }
} }
function output(image,datauri,mimetype){ function output(image, datauri, mimetype){
// This output is accessible by Image Sequencer // This output is accessible by Image Sequencer
step.output = { src: datauri, format: mimetype }; step.output = { src: datauri, format: mimetype };

View File

@@ -5,7 +5,7 @@ const kernelx = [
[-1, 0, 1] [-1, 0, 1]
], ],
kernely = [ kernely = [
[-1,-2,-1], [-1, -2, -1],
[ 0, 0, 0], [ 0, 0, 0],
[ 1, 2, 1] [ 1, 2, 1]
]; ];
@@ -69,8 +69,8 @@ function sobelFilter(pixels, x, y) {
yn = y + b - 1; yn = y + b - 1;
if (isOutOfBounds(pixels, xn, yn)) { if (isOutOfBounds(pixels, xn, yn)) {
gradX += pixels.get(xn+1, yn+1, 0) * kernelx[a][b]; gradX += pixels.get(xn + 1, yn + 1, 0) * kernelx[a][b];
gradY += pixels.get(xn+1, yn+1, 0) * kernely[a][b]; gradY += pixels.get(xn + 1, yn + 1, 0) * kernely[a][b];
} }
else { else {
gradX += pixels.get(xn, yn, 0) * kernelx[a][b]; gradX += pixels.get(xn, yn, 0) * kernelx[a][b];
@@ -120,7 +120,7 @@ function nonMaxSupress(pixels, grads, angles) {
let angleCategory = categorizeAngle(angles[x][y]); let angleCategory = categorizeAngle(angles[x][y]);
if (!isOutOfBounds(pixels, x - 1, y - 1) && !isOutOfBounds(pixels, x+1, y+1)){ if (!isOutOfBounds(pixels, x - 1, y - 1) && !isOutOfBounds(pixels, x + 1, y + 1)){
switch (angleCategory){ switch (angleCategory){
case 1: case 1:
if (!((grads[x][y] >= grads[x][y + 1]) && (grads[x][y] >= grads[x][y - 1]))) { if (!((grads[x][y] >= grads[x][y + 1]) && (grads[x][y] >= grads[x][y - 1]))) {
@@ -186,17 +186,17 @@ function hysteresis(strongEdgePixels, weakEdgePixels){
let x = pixel[0], let x = pixel[0],
y = pixel[1]; y = pixel[1];
if (weakEdgePixels.includes([x+1, y])) { if (weakEdgePixels.includes([x + 1, y])) {
removeElem(weakEdgePixels, [x+1, y]); removeElem(weakEdgePixels, [x + 1, y]);
} }
else if (weakEdgePixels.includes([x-1, y])) { else if (weakEdgePixels.includes([x - 1, y])) {
removeElem(weakEdgePixels, [x-1, y]); removeElem(weakEdgePixels, [x - 1, y]);
} }
else if (weakEdgePixels.includes([x, y+1])) { else if (weakEdgePixels.includes([x, y + 1])) {
removeElem(weakEdgePixels, [x, y+1]); removeElem(weakEdgePixels, [x, y + 1]);
} }
else if(weakEdgePixels.includes([x, y-1])) { else if(weakEdgePixels.includes([x, y - 1])) {
removeElem(weakEdgePixels, [x, y-1]); removeElem(weakEdgePixels, [x, y - 1]);
} }
}); });
} }

View File

@@ -2,12 +2,12 @@
* Changes the Image Exposure * Changes the Image Exposure
*/ */
module.exports = function Exposure(options,UI){ module.exports = function Exposure(options, UI){
var defaults = require('./../../util/getDefaults.js')(require('./info.json')); var defaults = require('./../../util/getDefaults.js')(require('./info.json'));
var output; var output;
function draw(input,callback,progressObj){ function draw(input, callback, progressObj){
options.exposure = options.exposure || defaults.exposure; options.exposure = options.exposure || defaults.exposure;
var exposure = Math.pow(2, options.exposure); var exposure = Math.pow(2, options.exposure);
@@ -18,16 +18,16 @@ module.exports = function Exposure(options,UI){
function changePixel(r, g, b, a){ function changePixel(r, g, b, a){
r = Math.min(255, r*exposure); r = Math.min(255, r * exposure);
g = Math.min(255, g*exposure); g = Math.min(255, g * exposure);
b = Math.min(255, b*exposure); b = Math.min(255, b * exposure);
return [r, g, b, a]; return [r, g, b, a];
} }
function output(image,datauri,mimetype){ function output(image, datauri, mimetype){
// This output is accessible by Image Sequencer // This output is accessible by Image Sequencer
step.output = {src:datauri,format:mimetype}; step.output = {src:datauri, format:mimetype};
} }

View File

@@ -11,15 +11,15 @@ module.exports = function flipImage(oldPixels, pixels, axis) {
function flip(){ function flip(){
if(axis.toLowerCase() == 'vertical'){ if(axis.toLowerCase() == 'vertical'){
for (var n=0; n < width; n++){ for (var n = 0; n < width; n++){
for (var m=0; m < height; m++){ for (var m = 0; m < height; m++){
copyPixel(n, m, n, height - m - 1); copyPixel(n, m, n, height - m - 1);
} }
} }
} }
else { else {
for (var n=0; n < width; n++){ for (var n = 0; n < width; n++){
for (var m=0; m < height; m++){ for (var m = 0; m < height; m++){
copyPixel(n, m, width - n - 1, m); copyPixel(n, m, width - n - 1, m);
} }
} }

View File

@@ -6,7 +6,7 @@ module.exports = exports = function(pixels, options){
color = options.color || defaults.color; color = options.color || defaults.color;
color = color.split(' '); color = color.split(' ');
for(var x = 0; x < pixels.shape[0]; x+=options.x){ for(var x = 0; x < pixels.shape[0]; x += options.x){
for(var y = 0 ; y < pixels.shape[1]; y++){ for(var y = 0 ; y < pixels.shape[1]; y++){
pixels.set(x, y, 0, color[0]); pixels.set(x, y, 0, color[0]);
pixels.set(x, y, 1, color[1]); pixels.set(x, y, 1, color[1]);
@@ -15,7 +15,7 @@ module.exports = exports = function(pixels, options){
} }
} }
for(var y = 0; y < pixels.shape[1]; y+=options.y){ for(var y = 0; y < pixels.shape[1]; y += options.y){
for(var x = 0 ; x < pixels.shape[0]; x++){ for(var x = 0 ; x < pixels.shape[0]; x++){
pixels.set(x, y, 0, color[0]); pixels.set(x, y, 0, color[0]);
pixels.set(x, y, 1, color[1]); pixels.set(x, y, 1, color[1]);

View File

@@ -1,5 +1,5 @@
module.exports = function GridOverlay(options,UI) { module.exports = function GridOverlay(options, UI) {
var output; var output;

View File

@@ -7,7 +7,7 @@ module.exports = function ImportImageModuleUi(step, ui) {
var dropzoneId = 'dropzone-import-image-' + step.ID; var dropzoneId = 'dropzone-import-image-' + step.ID;
// add a file input listener // add a file input listener
var dropZone ='\ var dropZone = '\
<div class="dropzone" style="padding: 30px;margin: 10px 20% 30px;border: 4px dashed #ccc;border-radius: 8px;text-align: center;color: #444;" id="' + dropzoneId + '">\ <div class="dropzone" style="padding: 30px;margin: 10px 20% 30px;border: 4px dashed #ccc;border-radius: 8px;text-align: center;color: #444;" id="' + dropzoneId + '">\
<p>\ <p>\
<i>Select or drag in an image to overlay.</i>\ <i>Select or drag in an image to overlay.</i>\

View File

@@ -18,7 +18,7 @@ module.exports = function CropModuleUi(step, ui) {
var xPos = e.pageX - offset.left; var xPos = e.pageX - offset.left;
var yPos = e.pageY - offset.top; var yPos = e.pageY - offset.top;
var ndvi = canvas.getContext('2d').getImageData(xPos, yPos, 1, 1).data[0]; var ndvi = canvas.getContext('2d').getImageData(xPos, yPos, 1, 1).data[0];
ndvi = ndvi/127.5 - 1 ; ndvi = ndvi / 127.5 - 1 ;
ndvi = ndvi.toFixed(2); ndvi = ndvi.toFixed(2);
ndviImage[0].title = 'NDVI: ' + ndvi; ndviImage[0].title = 'NDVI: ' + ndvi;
}); });

View File

@@ -11,30 +11,30 @@ module.exports = exports = function(pixels, options){
cb = color[2]; cb = color[2];
var tolerance = options.tolerance || 50; var tolerance = options.tolerance || 50;
var maxFactor = (1 + tolerance/100); var maxFactor = (1 + tolerance / 100);
var minFactor = (1 - tolerance/100); var minFactor = (1 - tolerance / 100);
function isSimilar(r, g, b){ function isSimilar(r, g, b){
return ( r >= cr*minFactor && r <= cr*maxFactor && return ( r >= cr * minFactor && r <= cr * maxFactor &&
g >= cg*minFactor && g <= cg*maxFactor && g >= cg * minFactor && g <= cg * maxFactor &&
b >= cb*minFactor && b <= cb*maxFactor); b >= cb * minFactor && b <= cb * maxFactor);
} }
for(var i = 0; i < pixels.shape[0]; i++){ for(var i = 0; i < pixels.shape[0]; i++){
for(var j = 0; j < pixels.shape[1]; j++){ for(var j = 0; j < pixels.shape[1]; j++){
var r = pixels.get(i,j,0), var r = pixels.get(i, j, 0),
g = pixels.get(i,j,1), g = pixels.get(i, j, 1),
b = pixels.get(i,j,2); b = pixels.get(i, j, 2);
if(isSimilar(r,g,b)){ if(isSimilar(r, g, b)){
if (replaceMethod == 'greyscale'){ if (replaceMethod == 'greyscale'){
var avg = (r + g + b)/3; var avg = (r + g + b) / 3;
pixels.set(i,j,0,avg); pixels.set(i, j, 0, avg);
pixels.set(i,j,1,avg); pixels.set(i, j, 1, avg);
pixels.set(i,j,2,avg); pixels.set(i, j, 2, avg);
}else { }else {
pixels.set(i,j,0,replaceColor[0]); pixels.set(i, j, 0, replaceColor[0]);
pixels.set(i,j,1,replaceColor[1]); pixels.set(i, j, 1, replaceColor[1]);
pixels.set(i,j,2,replaceColor[2]); pixels.set(i, j, 2, replaceColor[2]);
} }
} }
} }

View File

@@ -41,7 +41,7 @@ module.exports = function Resize(options, UI) {
}); });
pixels.data = resized._data.data; pixels.data = resized._data.data;
pixels.shape = [new_width,new_height,4]; pixels.shape = [new_width, new_height, 4];
pixels.stride[1] = 4 * new_width; pixels.stride[1] = 4 * new_width;
return pixels; return pixels;

View File

@@ -22,9 +22,9 @@ module.exports = function Rotate(options, UI) {
} }
function extraManipulation(pixels) { function extraManipulation(pixels) {
var rotate_value = (options.rotate)%360; var rotate_value = (options.rotate) % 360;
if(rotate_value%360 == 0) if(rotate_value % 360 == 0)
return pixels; return pixels;
var bitmap = new imagejs.Bitmap({width: pixels.shape[0], height: pixels.shape[1]}); var bitmap = new imagejs.Bitmap({width: pixels.shape[0], height: pixels.shape[1]});

View File

@@ -1,7 +1,7 @@
/* /*
* Saturate an image with a value from 0 to 1 * Saturate an image with a value from 0 to 1
*/ */
module.exports = function Saturation(options,UI) { module.exports = function Saturation(options, UI) {
var defaults = require('./../../util/getDefaults.js')(require('./info.json')); var defaults = require('./../../util/getDefaults.js')(require('./info.json'));
var output; var output;

View File

@@ -1,5 +1,5 @@
module.exports = function TextOverlay(options,UI) { module.exports = function TextOverlay(options, UI) {
var output; var output;
@@ -18,7 +18,7 @@ module.exports = function TextOverlay(options,UI) {
function extraManipulation(pixels) { function extraManipulation(pixels) {
//if (options.step.inBrowser) //if (options.step.inBrowser)
pixels = require('./TextOverlay')(pixels, options,priorStep); pixels = require('./TextOverlay')(pixels, options, priorStep);
return pixels; return pixels;
} }

View File

@@ -1,4 +1,4 @@
module.exports = exports = function(pixels, options,priorstep){ module.exports = exports = function(pixels, options, priorstep){
var defaults = require('./../../util/getDefaults.js')(require('./info.json')); var defaults = require('./../../util/getDefaults.js')(require('./info.json'));
options.text = options.text || defaults.text; options.text = options.text || defaults.text;
@@ -18,10 +18,10 @@ module.exports = exports = function(pixels, options,priorstep){
var ctx = canvas.getContext('2d'); var ctx = canvas.getContext('2d');
ctx.drawImage(img[0], 0, 0); ctx.drawImage(img[0], 0, 0);
ctx.fillStyle = options.color; ctx.fillStyle = options.color;
ctx.font = options.size +'px ' + options.font; ctx.font = options.size + 'px ' + options.font;
ctx.fillText(options.text, options.x, options.y); ctx.fillText(options.text, options.x, options.y);
var myImageData = ctx.getImageData(0,0,canvas.width,canvas.height); var myImageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
pixels.data = myImageData.data; pixels.data = myImageData.data;
return pixels; return pixels;
}; };

View File

@@ -127,7 +127,7 @@ module.exports = function DoNothing(options, UI) {
var offsetY = matrix2northmost - matrix1northmost; var offsetY = matrix2northmost - matrix1northmost;
canvas.draw(texture, canvas.draw(texture,
image.width,// * ratio, image.width, // * ratio,
image.height// * ratio image.height// * ratio
); );

View File

@@ -18,15 +18,15 @@ module.exports = function Balance(options, UI) {
function extraManipulation(pixels) { function extraManipulation(pixels) {
var i = 0; var i = 0;
var red_factor = 255/options.red; var red_factor = 255 / options.red;
var green_factor = 255/options.green; var green_factor = 255 / options.green;
var blue_factor = 255/options.blue; var blue_factor = 255 / options.blue;
while (i < pixels.data.length) { while (i < pixels.data.length) {
pixels.data[i] = Math.min(255, pixels.data[i]*red_factor); pixels.data[i] = Math.min(255, pixels.data[i] * red_factor);
pixels.data[i+1] = Math.min(255, pixels.data[i+1]*green_factor); pixels.data[i + 1] = Math.min(255, pixels.data[i + 1] * green_factor);
pixels.data[i+2] = Math.min(255, pixels.data[i+2]*blue_factor); pixels.data[i + 2] = Math.min(255, pixels.data[i + 2] * blue_factor);
i+=4; i += 4;
} }
return pixels; return pixels;

View File

@@ -30,16 +30,16 @@ function setInputStepInit() {
function runVideo(){ function runVideo(){
/* event handler for Take-Photo */ /* event handler for Take-Photo */
document.getElementById('video').style.display='inline'; document.getElementById('video').style.display = 'inline';
document.getElementById('capture').style.display='inline'; document.getElementById('capture').style.display = 'inline';
document.getElementById('close').style.display='inline'; document.getElementById('close').style.display = 'inline';
var video = document.getElementById('video'); var video = document.getElementById('video');
canvas = document.getElementById('canvas'), canvas = document.getElementById('canvas'),
context = canvas.getContext('2d'), context = canvas.getContext('2d'),
vendorUrl = window.URL || window.webkitURL; vendorUrl = window.URL || window.webkitURL;
const constraints = { audio: false,video: true}; const constraints = { audio: false, video: true};
function handleSuccess(stream) { function handleSuccess(stream) {
window.stream = stream; // make stream available to browser console window.stream = stream; // make stream available to browser console
@@ -66,9 +66,9 @@ function setInputStepInit() {
stream.getVideoTracks().forEach(function (track) { stream.getVideoTracks().forEach(function (track) {
track.stop(); track.stop();
}); });
document.getElementById('video').style.display='none'; document.getElementById('video').style.display = 'none';
document.getElementById('capture').style.display='none'; document.getElementById('capture').style.display = 'none';
document.getElementById('close').style.display='none'; document.getElementById('close').style.display = 'none';
} }
} }

View File

@@ -9,10 +9,10 @@ module.exports = function UserInterface(events = {}) {
// No UI // No UI
} else if(step.inBrowser) { } else if(step.inBrowser) {
// Create and append an HTML Element // Create and append an HTML Element
console.log('Added Step "'+step.name+'"'); console.log('Added Step "' + step.name + '"');
} else { } else {
// Create a NodeJS Object // Create a NodeJS Object
console.log('\x1b[36m%s\x1b[0m','Added Step "'+step.name+'"'); console.log('\x1b[36m%s\x1b[0m', 'Added Step "' + step.name + '"');
} }
}; };
@@ -21,10 +21,10 @@ module.exports = function UserInterface(events = {}) {
// No UI // No UI
} else if(step.inBrowser) { } else if(step.inBrowser) {
// Overlay a loading spinner // Overlay a loading spinner
console.log('Drawing Step "'+step.name+'"'); console.log('Drawing Step "' + step.name + '"');
} else { } else {
// Don't do anything // Don't do anything
console.log('\x1b[33m%s\x1b[0m','Drawing Step "'+step.name+'"'); console.log('\x1b[33m%s\x1b[0m', 'Drawing Step "' + step.name + '"');
} }
}; };
@@ -34,10 +34,10 @@ module.exports = function UserInterface(events = {}) {
} else if(step.inBrowser) { } else if(step.inBrowser) {
// Update the DIV Element // Update the DIV Element
// Hide the laoding spinner // Hide the laoding spinner
console.log('Drawn Step "'+step.name+'"'); console.log('Drawn Step "' + step.name + '"');
} else { } else {
// Update the NodeJS Object // Update the NodeJS Object
console.log('\x1b[32m%s\x1b[0m','Drawn Step "'+step.name+'"'); console.log('\x1b[32m%s\x1b[0m', 'Drawn Step "' + step.name + '"');
} }
}; };
@@ -46,10 +46,10 @@ module.exports = function UserInterface(events = {}) {
// No UI // No UI
} else if(step.inBrowser) { } else if(step.inBrowser) {
// Remove the DIV Element // Remove the DIV Element
console.log('Removing Step "'+step.name+'"'); console.log('Removing Step "' + step.name + '"');
} else { } else {
// Delete the NodeJS Object // Delete the NodeJS Object
console.log('\x1b[31m%s\x1b[0m','Removing Step "'+step.name+'"'); console.log('\x1b[31m%s\x1b[0m', 'Removing Step "' + step.name + '"');
} }
}; };

View File

@@ -35,6 +35,6 @@ module.exports = function GetFormat(src) {
return supportedFormats.includes(data); return supportedFormats.includes(data);
} }
return validateFormat(format)?format:'jpg'; return validateFormat(format) ? format : 'jpg';
}; };

View File

@@ -1,4 +1,4 @@
module.exports = function parseCornerCoordinateInputs(options,coord,callback) { module.exports = function parseCornerCoordinateInputs(options, coord, callback) {
var getPixels = require('get-pixels'); var getPixels = require('get-pixels');
getPixels(coord.src, function(err, pixels) { getPixels(coord.src, function(err, pixels) {
var iw = pixels.shape[0], var iw = pixels.shape[0],

View File

@@ -3,10 +3,10 @@
const cliUtils = require('../../src/CliUtils'); const cliUtils = require('../../src/CliUtils');
const test = require('tape'); const test = require('tape');
test('Output directory is correctly generated',function(t){ test('Output directory is correctly generated', function(t){
cliUtils.makedir('./output/',function(){ cliUtils.makedir('./output/', function(){
require('fs').access('./output/.',function(err){ require('fs').access('./output/.', function(err){
t.true(!err,'Access the created dir'); t.true(!err, 'Access the created dir');
t.end(); t.end();
}); });
}); });

View File

@@ -1,5 +1,5 @@
const testModule = require('../templates/module-test'), const testModule = require('../templates/module-test'),
options = {size:200, qrCodeString:'https://github.com/publiclab/image-sequencer'}, options = {size:200, qrCodeString:'https://github.com/publiclab/image-sequencer'},
benchmark= 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAAApSURBVKXBAQEAAAiAIPP/5+qDMPsIJJJIIokkkkgiiSSSSCKJJJJIogNrygQcXEYsHQAAAABJRU5ErkJggg=='; benchmark = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAklEQVR4AewaftIAAAApSURBVKXBAQEAAAiAIPP/5+qDMPsIJJJIIokkkkgiiSSSSCKJJJJIogNrygQcXEYsHQAAAABJRU5ErkJggg==';
testModule('add-qr', options, benchmark); testModule('add-qr', options, benchmark);

View File

@@ -21,7 +21,7 @@ var invert = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9h
test('Load invert module', function(t) { test('Load invert module', function(t) {
sequencer.loadImages( red); sequencer.loadImages( red);
t.equal(sequencer.steps.length, 1,'Image loaded'); t.equal(sequencer.steps.length, 1, 'Image loaded');
sequencer.addSteps('invert'); sequencer.addSteps('invert');
t.equal(sequencer.steps[1].options.name, 'invert', 'Invert step added'); t.equal(sequencer.steps[1].options.name, 'invert', 'Invert step added');
t.end(); t.end();
@@ -33,7 +33,7 @@ test('Inverted image isn\'t identical', function(t) {
var output = sequencer.steps[1].output.src; var output = sequencer.steps[1].output.src;
input = DataURItoBuffer(input); input = DataURItoBuffer(input);
output = DataURItoBuffer(output); output = DataURItoBuffer(output);
t.notEqual(input,output,'Not equal'); t.notEqual(input, output, 'Not equal');
t.end(); t.end();
}); });
}); });

View File

@@ -20,7 +20,7 @@ test('loadImages/loadImage has a name generator.', function (t){
test('loadImages/loadImage returns a wrapper in the callback.', function (t){ test('loadImages/loadImage returns a wrapper in the callback.', function (t){
sequencer.loadImage(red, function() { sequencer.loadImage(red, function() {
var returnval = this; var returnval = this;
t.equal(returnval.name,'ImageSequencer Wrapper', 'Wrapper is returned'); t.equal(returnval.name, 'ImageSequencer Wrapper', 'Wrapper is returned');
t.end(); t.end();
}); });
}); });
@@ -29,54 +29,54 @@ test('addSteps is two-way chainable.', function (t){
sequencer.loadImage(red, function(){ sequencer.loadImage(red, function(){
var returnval = this; var returnval = this;
this.addSteps('invert'); this.addSteps('invert');
t.equal(returnval.name,'ImageSequencer Wrapper', 'Wrapper is returned'); t.equal(returnval.name, 'ImageSequencer Wrapper', 'Wrapper is returned');
t.equal(sequencer.steps.length,2,'Loaded image is affected'); t.equal(sequencer.steps.length, 2, 'Loaded image is affected');
t.equal(sequencer.steps[1].options.name,'invert','Correct Step Added'); t.equal(sequencer.steps[1].options.name, 'invert', 'Correct Step Added');
t.end(); t.end();
}); });
}); });
test('addSteps is two-way chainable without loadImages.', function (t){ test('addSteps is two-way chainable without loadImages.', function (t){
var returnval = sequencer.addSteps('ndvi'); var returnval = sequencer.addSteps('ndvi');
t.equal(returnval.name,'ImageSequencer','Sequencer is returned'); t.equal(returnval.name, 'ImageSequencer', 'Sequencer is returned');
t.equal(sequencer.steps.length,3,'Step length increased'); t.equal(sequencer.steps.length, 3, 'Step length increased');
t.equal(sequencer.steps[2].options.name,'ndvi','Correct Step Added'); t.equal(sequencer.steps[2].options.name, 'ndvi', 'Correct Step Added');
t.end(); t.end();
}); });
test('removeSteps is two-way chainable.', function (t){ test('removeSteps is two-way chainable.', function (t){
sequencer.loadImage(red,function(){ sequencer.loadImage(red, function(){
var returnval = this; var returnval = this;
this.addSteps('invert').removeSteps(1); this.addSteps('invert').removeSteps(1);
t.equal(returnval.name,'ImageSequencer Wrapper', 'Wrapper is returned'); t.equal(returnval.name, 'ImageSequencer Wrapper', 'Wrapper is returned');
t.equal(sequencer.steps.length,3); t.equal(sequencer.steps.length, 3);
t.end(); t.end();
}); });
}); });
test('removeSteps is two-way chainable without loadImages.', function (t){ test('removeSteps is two-way chainable without loadImages.', function (t){
var returnval = sequencer.addSteps('blur').removeSteps(3); var returnval = sequencer.addSteps('blur').removeSteps(3);
t.equal(returnval.name,'ImageSequencer','Sequencer is returned'); t.equal(returnval.name, 'ImageSequencer', 'Sequencer is returned');
t.equal(sequencer.steps.length,3); t.equal(sequencer.steps.length, 3);
t.end(); t.end();
}); });
test('insertSteps is two-way chainable.', function (t){ test('insertSteps is two-way chainable.', function (t){
sequencer.loadImage(red,function() { sequencer.loadImage(red, function() {
var returnval = this; var returnval = this;
this.insertSteps(1,'invert'); this.insertSteps(1, 'invert');
t.equal(returnval.name,'ImageSequencer Wrapper','Wrapper is returned'); t.equal(returnval.name, 'ImageSequencer Wrapper', 'Wrapper is returned');
t.equal(sequencer.steps.length,4); t.equal(sequencer.steps.length, 4);
t.equal(sequencer.steps[1].options.name,'invert','Correct Step Inserrted'); t.equal(sequencer.steps[1].options.name, 'invert', 'Correct Step Inserrted');
t.end(); t.end();
}); });
}); });
test('insertSteps is two-way chainable without loadImages.', function (t){ test('insertSteps is two-way chainable without loadImages.', function (t){
var returnval = sequencer.insertSteps(1,'ndvi'); var returnval = sequencer.insertSteps(1, 'ndvi');
t.equal(returnval.name,'ImageSequencer','Sequencer is returned'); t.equal(returnval.name, 'ImageSequencer', 'Sequencer is returned');
t.equal(sequencer.steps.length,5); t.equal(sequencer.steps.length, 5);
t.equal(sequencer.steps[1].options.name,'ndvi','Correct Step Inserrted'); t.equal(sequencer.steps[1].options.name, 'ndvi', 'Correct Step Inserrted');
t.end(); t.end();
}); });

View File

@@ -160,15 +160,15 @@ test('insertSteps(position,"module") inserts a step', function(t) {
test('getSteps() returns correct array of steps', function(t){ test('getSteps() returns correct array of steps', function(t){
var sequencer = ImageSequencer({ ui: false }); var sequencer = ImageSequencer({ ui: false });
sequencer.loadImages('test', red); sequencer.loadImages('test', red);
sequencer.addSteps(['blur','invert']); sequencer.addSteps(['blur', 'invert']);
var stepsArray = sequencer.getSteps('test'); var stepsArray = sequencer.getSteps('test');
t.equal(stepsArray.length, sequencer.steps.length, 'getSteps() returns correct length of steps'); t.equal(stepsArray.length, sequencer.steps.length, 'getSteps() returns correct length of steps');
var flag=0; var flag = 0;
for (var i = 0; i<sequencer.steps.length; i++){ for (var i = 0; i < sequencer.steps.length; i++){
if(stepsArray[i].options.name==(sequencer.steps[i].options.name)) if(stepsArray[i].options.name == (sequencer.steps[i].options.name))
continue; continue;
else else
flag=1; flag = 1;
} }
t.equal(flag, 0, 'getSteps() returns correct array of steps'); t.equal(flag, 0, 'getSteps() returns correct array of steps');
t.end(); t.end();

View File

@@ -18,8 +18,8 @@ test('replaceImage works.', function (t){
if (typeof(window) === 'undefined') if (typeof(window) === 'undefined')
t.end(); t.end();
sequencer.replaceImage('img','invert',{ callback: function(){ sequencer.replaceImage('img', 'invert', { callback: function(){
t.equal(0,0, 'replaceImage works'); t.equal(0, 0, 'replaceImage works');
t.end(); t.end();
} }); } });
}); });

View File

@@ -14,13 +14,13 @@ sequencer.addSteps('invert');
sequencer.addSteps('invert'); sequencer.addSteps('invert');
sequencer.addSteps('invert'); sequencer.addSteps('invert');
test('run() works with all possible argument combinations',function(t){ test('run() works with all possible argument combinations', function(t){
sequencer.run(function (out) { sequencer.run(function (out) {
var output1 = DataURItoBuffer(sequencer.steps.slice(-1)[0].output.src); var output1 = DataURItoBuffer(sequencer.steps.slice(-1)[0].output.src);
sequencer.steps.splice(1,1); sequencer.steps.splice(1, 1);
sequencer.run({index: 1},function(out){ sequencer.run({index: 1}, function(out){
var output2 = DataURItoBuffer(sequencer.steps.slice(-1)[0].output.src); var output2 = DataURItoBuffer(sequencer.steps.slice(-1)[0].output.src);
t.deepEqual(output1,output2,'output remains same after removing a step and running sequencer from a greater index'); t.deepEqual(output1, output2, 'output remains same after removing a step and running sequencer from a greater index');
sequencer.run(function(out){ sequencer.run(function(out){
t.end(); t.end();
}); });

View File

@@ -24,7 +24,7 @@ test('Notify function works for all three UIs', function (t) {
console.log = oldLog; console.log = oldLog;
return result; return result;
} }
t.equal(doesLogMessage(UserInterface().notify, 'Test Message'),true,'Default notify() produces correct output'); t.equal(doesLogMessage(UserInterface().notify, 'Test Message'), true, 'Default notify() produces correct output');
sequencer.setUI(DefaultHtmlStepUi(sequencer)); sequencer.setUI(DefaultHtmlStepUi(sequencer));
t.equal(typeof sequencer.events.notify, 'function', 'Html UI contains notify function'); t.equal(typeof sequencer.events.notify, 'function', 'Html UI contains notify function');
t.end(); t.end();

View File

@@ -7,11 +7,11 @@ describe('Default sequencer HTML', function() {
beforeEach(()=>{ beforeEach(()=>{
defaultHtmlSequencerUi = new DefaultHtmlSequencerUi(sequencer); defaultHtmlSequencerUi = new DefaultHtmlSequencerUi(sequencer);
spyOn(defaultHtmlSequencerUi,'onLoad'); spyOn(defaultHtmlSequencerUi, 'onLoad');
spyOn(defaultHtmlSequencerUi,'selectNewStepUi'); spyOn(defaultHtmlSequencerUi, 'selectNewStepUi');
spyOn(defaultHtmlSequencerUi,'removeStepUi'); spyOn(defaultHtmlSequencerUi, 'removeStepUi');
spyOn(defaultHtmlSequencerUi,'addStepUi'); spyOn(defaultHtmlSequencerUi, 'addStepUi');
spyOn(defaultHtmlSequencerUi,'importStepsFromUrlHash'); spyOn(defaultHtmlSequencerUi, 'importStepsFromUrlHash');
defaultHtmlSequencerUi.onLoad(); defaultHtmlSequencerUi.onLoad();
defaultHtmlSequencerUi.selectNewStepUi(); defaultHtmlSequencerUi.selectNewStepUi();

View File

@@ -18,19 +18,19 @@ describe('Sequencer step HTML', function() {
beforeEach(()=>{ beforeEach(()=>{
defaultHtmlStepUi = new DefaultHtmlStepUi(sequencer); defaultHtmlStepUi = new DefaultHtmlStepUi(sequencer);
spyOn(defaultHtmlStepUi,'getPreview'); spyOn(defaultHtmlStepUi, 'getPreview');
spyOn(defaultHtmlStepUi,'onSetup'); spyOn(defaultHtmlStepUi, 'onSetup');
spyOn(defaultHtmlStepUi,'onComplete'); spyOn(defaultHtmlStepUi, 'onComplete');
spyOn(defaultHtmlStepUi,'onDraw'); spyOn(defaultHtmlStepUi, 'onDraw');
spyOn(defaultHtmlStepUi,'onRemove'); spyOn(defaultHtmlStepUi, 'onRemove');
spyOn(defaultHtmlStepUi,'notify'); spyOn(defaultHtmlStepUi, 'notify');
defaultHtmlStepUi.getPreview(); defaultHtmlStepUi.getPreview();
defaultHtmlStepUi.onSetup(step,options); defaultHtmlStepUi.onSetup(step, options);
defaultHtmlStepUi.onComplete(step); defaultHtmlStepUi.onComplete(step);
defaultHtmlStepUi.onDraw(step); defaultHtmlStepUi.onDraw(step);
defaultHtmlStepUi.onRemove(step); defaultHtmlStepUi.onRemove(step);
defaultHtmlStepUi.notify('Step removed','remove-notification'); defaultHtmlStepUi.notify('Step removed', 'remove-notification');
}); });
@@ -39,7 +39,7 @@ describe('Sequencer step HTML', function() {
}); });
it('load initial setup ui', function() { it('load initial setup ui', function() {
expect(defaultHtmlStepUi.onSetup).toHaveBeenCalledWith(step,options); expect(defaultHtmlStepUi.onSetup).toHaveBeenCalledWith(step, options);
}); });
it('load completion ui', function() { it('load completion ui', function() {
@@ -55,7 +55,7 @@ describe('Sequencer step HTML', function() {
}); });
it('notification ui', function() { it('notification ui', function() {
expect(defaultHtmlStepUi.notify).toHaveBeenCalledWith('Step removed','remove-notification'); expect(defaultHtmlStepUi.notify).toHaveBeenCalledWith('Step removed', 'remove-notification');
}); });
}); });

View File

@@ -8,19 +8,19 @@ describe('Preview UI HTML', function() {
beforeEach(()=>{ beforeEach(()=>{
insertPreview = InsertPreview; insertPreview = InsertPreview;
spyOn(insertPreview,'generatePreview'); spyOn(insertPreview, 'generatePreview');
spyOn(insertPreview,'updatePreviews'); spyOn(insertPreview, 'updatePreviews');
insertPreview.generatePreview('brightness',options,'src','selector'); insertPreview.generatePreview('brightness', options, 'src', 'selector');
insertPreview.updatePreviews('src','selector'); insertPreview.updatePreviews('src', 'selector');
}); });
it('generate preview ui', function() { it('generate preview ui', function() {
expect(insertPreview.generatePreview).toHaveBeenCalledWith('brightness',options,'src','selector'); expect(insertPreview.generatePreview).toHaveBeenCalledWith('brightness', options, 'src', 'selector');
}); });
it('update preview ui', function() { it('update preview ui', function() {
expect(insertPreview.updatePreviews).toHaveBeenCalledWith('src','selector'); expect(insertPreview.updatePreviews).toHaveBeenCalledWith('src', 'selector');
}); });
}); });

View File

@@ -7,7 +7,7 @@ describe('Intermediate step HTML', function() {
beforeEach(()=>{ beforeEach(()=>{
intermediateHtmlStepUi = new IntermediateHtmlStepUi(sequencer); intermediateHtmlStepUi = new IntermediateHtmlStepUi(sequencer);
spyOn(intermediateHtmlStepUi,'insertStep'); spyOn(intermediateHtmlStepUi, 'insertStep');
intermediateHtmlStepUi.insertStep(); intermediateHtmlStepUi.insertStep();
}); });

View File

@@ -10,15 +10,15 @@ describe('URL manipulation methods', function() {
beforeEach(()=>{ beforeEach(()=>{
urlHash = UrlHash; urlHash = UrlHash;
spyOn(urlHash,'getUrlHashParameters'); spyOn(urlHash, 'getUrlHashParameters');
spyOn(urlHash,'getUrlHashParameter'); spyOn(urlHash, 'getUrlHashParameter');
spyOn(urlHash,'setUrlHashParameters'); spyOn(urlHash, 'setUrlHashParameters');
spyOn(urlHash,'setUrlHashParameter'); spyOn(urlHash, 'setUrlHashParameter');
urlHash.getUrlHashParameters(); urlHash.getUrlHashParameters();
urlHash.getUrlHashParameter('module'); urlHash.getUrlHashParameter('module');
urlHash.setUrlHashParameters(params); urlHash.setUrlHashParameters(params);
urlHash.setUrlHashParameter('module','brightness'); urlHash.setUrlHashParameter('module', 'brightness');
}); });
it('gets url hash params from window hash', function() { it('gets url hash params from window hash', function() {
@@ -34,7 +34,7 @@ describe('URL manipulation methods', function() {
}); });
it('accepts param key-value pair and sets url hash params', function() { it('accepts param key-value pair and sets url hash params', function() {
expect(urlHash.setUrlHashParameter).toHaveBeenCalledWith('module','brightness'); expect(urlHash.setUrlHashParameter).toHaveBeenCalledWith('module', 'brightness');
}); });
}); });