X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?p=src%2Fapp-framework-demo.git;a=blobdiff_plain;f=afb-client%2Fbower_components%2Ftether%2Fdocs%2Fcoffee%2Fintro.coffee;fp=afb-client%2Fbower_components%2Ftether%2Fdocs%2Fcoffee%2Fintro.coffee;h=52a305df9a867fab839024476fccec3fc2e6869c;hp=0000000000000000000000000000000000000000;hb=5b1e6cc132f44262a873fa8296a2a3e1017b0278;hpb=f7d2f9ac4168ee5064580c666d508667a73cefc0 diff --git a/afb-client/bower_components/tether/docs/coffee/intro.coffee b/afb-client/bower_components/tether/docs/coffee/intro.coffee new file mode 100644 index 0000000..52a305d --- /dev/null +++ b/afb-client/bower_components/tether/docs/coffee/intro.coffee @@ -0,0 +1,113 @@ +{uniqueId} = Tether.Utils + +SETUP_JS = """ +yellowBox = $('.yellow-box', $output); +greenBox = $('.green-box', $output); +scrollBox = $('.scroll-box', $output); +""" + +OUTPUT_HTML = (key) -> """ +
+
+
+
+
+
+""" + +tethers = {} + +getOutput = ($block) -> + key = $block.data('example') + if key and typeof key is 'string' + return $("output[data-example='#{ key }']") + else + return $block.parents('pre').nextAll('output').first() + +run = (key) -> + if typeof key is '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 + tethers[key] = eval code + +setupBlock = ($block) -> + key = $block.data('example') + + $output = getOutput $block + + if not 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 -> + $scrollBox.on 'scroll', -> + $output.addClass 'scrolled' + + $scrollBox.css 'height', "#{ $block.parent().outerHeight() }px" + + if not $output.attr('deactivated')? + run $block + +$(document.body).on 'click', (e) -> + if $(e.target).is('output[deactivated]') + activate $(e.target) + false + else if $(e.target).is('output[activated]') + deactivate $(e.target) + false + +activate = ($output) -> + $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') + $output.attr('activated', true) + +deactivate = ($output) -> + $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') + $output.attr('deactivated', true) + +init = -> + $blocks = $('code[data-example]') + + setupBlock($ block) for block in $blocks + +window.EXECUTR_OPTIONS = + codeSelector: 'code[executable]' + +$ init