var urlHash = require('./urlHash.js'), insertPreview = require('./insertPreview.js'); function IntermediateHtmlStepUi(_sequencer, step, options) { function stepUI() { return '
\
\ \
\
\

Select a new module to add to your sequence.

\
\
\
\ \
\

Resize

\
\
\
\ \
\

Brightness

\
\
\
\ \
\

Contrast

\
\
\
\ \
\

Saturation

\
\
\
\ \
\

Rotate

\
\
\
\ \
\

Crop

\
\
\
\
\ \
\
\ \
\
\
\
\
\
'; } var toggleDiv = function($step, callback = function(){}){ $step('.insertDiv').collapse('toggle'); if ($step('.insert-text').css('display') != 'none'){ $step('.insert-text').fadeToggle(200, function(){$step('.no-insert-text').fadeToggle(200, callback);}); } else { $step('.no-insert-text').fadeToggle(200, function(){$step('.insert-text').fadeToggle(200, callback);}); } }; insertStep = function (id) { const $step = step.ui.$step, $stepAll = step.ui.$stepAll; var modulesInfo = _sequencer.modulesInfo(); var parser = new DOMParser(); var addStepUI = stepUI(); addStepUI = parser.parseFromString(addStepUI, 'text/html').querySelector('div'); if ($step('.insertDiv').length > 0){ toggleDiv($step); } else { step.ui .querySelector('div.step') .insertAdjacentElement('afterend', addStepUI ); toggleDiv($step, function(){ insertPreview.updatePreviews(step.output, '.insertDiv'); }); } $step('.insertDiv .close-insert-box').off('click').on('click', function(){ toggleDiv($step); $step('.insertDiv').removeClass('insertDiv'); }); var insertStepSelect = $step('.insert-step-select'); insertStepSelect.html(''); // Add modules to the insertStep dropdown for (var m in modulesInfo) { if (modulesInfo[m] && modulesInfo[m].name) insertStepSelect.append( '' ); } insertStepSelect.selectize({ sortField: 'text' }); $('.insertDiv .radio-group .radio').on('click', function () { var newStepName = $(this).attr('data-value'); id = $($step('.insertDiv').parents()[3]).prevAll().length; insert(id, $step, newStepName); }); $step('.insertDiv .add-step-btn').on('click', function () { var newStepName = insertStepSelect.val(); id = $($step('.insertDiv').parents()[3]).prevAll().length; insert(id, $step, newStepName); }); }; function insert(id, $step, newStepName) { toggleDiv($step); $step('.insertDiv').removeClass('insertDiv'); _sequencer.insertSteps(id + 1, newStepName).run({ index: id }); urlHash.setUrlHashParameter('steps', _sequencer.toString()); } return { insertStep }; } module.exports = IntermediateHtmlStepUi;