diff options
author | Stephane Desneux <stephane.desneux@iot.bzh> | 2016-05-31 18:16:48 +0200 |
---|---|---|
committer | Stephane Desneux <stephane.desneux@iot.bzh> | 2016-05-31 18:16:48 +0200 |
commit | 5b1e6cc132f44262a873fa8296a2a3e1017b0278 (patch) | |
tree | 43b2cd54e2e300b399ff3f2af4458a2c4ed8a144 /afb-client/bower_components/tether/docs/js | |
parent | f7d2f9ac4168ee5064580c666d508667a73cefc0 (diff) | |
parent | 85ace9c1ce9a98e9b8a22f045c7dd752b38d9129 (diff) |
Merge afb-client
Diffstat (limited to 'afb-client/bower_components/tether/docs/js')
-rw-r--r-- | afb-client/bower_components/tether/docs/js/intro.js | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/afb-client/bower_components/tether/docs/js/intro.js b/afb-client/bower_components/tether/docs/js/intro.js new file mode 100644 index 0000000..47ed6e5 --- /dev/null +++ b/afb-client/bower_components/tether/docs/js/intro.js @@ -0,0 +1,117 @@ +(function() { + var OUTPUT_HTML, SETUP_JS, activate, deactivate, getOutput, init, run, setupBlock, tethers, uniqueId; + + uniqueId = Tether.Utils.uniqueId; + + SETUP_JS = "yellowBox = $('.yellow-box', $output);\ngreenBox = $('.green-box', $output);\nscrollBox = $('.scroll-box', $output);"; + + OUTPUT_HTML = function(key) { + return "<div class=\"scroll-box\">\n <div class=\"scroll-content\">\n <div class=\"yellow-box\" data-example=\"" + key + "\"></div>\n <div class=\"green-box\" data-example=\"" + key + "\"></div>\n </div>\n</div>"; + }; + + tethers = {}; + + getOutput = function($block) { + var key; + key = $block.data('example'); + if (key && typeof key === 'string') { + return $("output[data-example='" + key + "']"); + } else { + return $block.parents('pre').nextAll('output').first(); + } + }; + + run = function(key) { + var $block, $output, code; + if (typeof key === 'string') { + $block = $("code[data-example='" + key + "']"); + } else { + $block = key; + } + key = $block.attr('data-example'); + $output = getOutput($block); + code = $block.text(); + code = SETUP_JS + code; + window.$output = $output; + return tethers[key] = eval(code); + }; + + setupBlock = function($block) { + var $output, $scrollBox, $scrollContent, key; + key = $block.data('example'); + $output = getOutput($block); + if (!key) { + key = uniqueId(); + $block.attr('data-example', key); + $output.attr('data-example', key); + $output.find('.tether-element').attr('data-example', key); + } + $output.html(OUTPUT_HTML(key)); + $scrollBox = $output.find('.scroll-box'); + $scrollContent = $scrollBox.find('.scroll-content'); + $scrollBox.scrollTop(parseInt($scrollContent.css('height')) / 2 - $scrollBox.height() / 2); + $scrollBox.scrollLeft(parseInt($scrollContent.css('width')) / 2 - $scrollBox.width() / 2); + setTimeout(function() { + return $scrollBox.on('scroll', function() { + return $output.addClass('scrolled'); + }); + }); + $scrollBox.css('height', "" + ($block.parent().outerHeight()) + "px"); + if ($output.attr('deactivated') == null) { + return run($block); + } + }; + + $(document.body).on('click', function(e) { + if ($(e.target).is('output[deactivated]')) { + activate($(e.target)); + return false; + } else if ($(e.target).is('output[activated]')) { + deactivate($(e.target)); + return false; + } + }); + + activate = function($output) { + var $block, key; + $block = $output.prev().find('code'); + run($block); + $output.find('.tether-element').show(); + key = $output.data('example'); + $(tethers[key].element).show(); + tethers[key].enable(); + $output.removeAttr('deactivated'); + return $output.attr('activated', true); + }; + + deactivate = function($output) { + var $block, $el, key; + $block = $output.prev().find('code'); + key = $output.data('example'); + tethers[key].disable(); + $el = $(tethers[key].element); + $el.detach(); + $output.find('.scroll-content').append($el); + $el.hide(); + $output.removeAttr('activated'); + return $output.attr('deactivated', true); + }; + + init = function() { + var $blocks, block, _i, _len, _results; + $blocks = $('code[data-example]'); + _results = []; + for (_i = 0, _len = $blocks.length; _i < _len; _i++) { + block = $blocks[_i]; + _results.push(setupBlock($(block))); + } + return _results; + }; + + window.EXECUTR_OPTIONS = { + codeSelector: 'code[executable]' + }; + + $(init); + +}).call(this); |