diff options
Diffstat (limited to 'docs/components/bootstrap/bootstrap-prettify.js')
| -rw-r--r-- | docs/components/bootstrap/bootstrap-prettify.js | 290 |
1 files changed, 0 insertions, 290 deletions
diff --git a/docs/components/bootstrap/bootstrap-prettify.js b/docs/components/bootstrap/bootstrap-prettify.js deleted file mode 100644 index cbe7b53f..00000000 --- a/docs/components/bootstrap/bootstrap-prettify.js +++ /dev/null @@ -1,290 +0,0 @@ -'use strict'; - -var directive = {}; -var service = { value: {} }; - -var DEPENDENCIES = { - 'angular.js': 'http://code.angularjs.org/' + angular.version.full + '/angular.min.js', - 'angular-resource.js': 'http://code.angularjs.org/' + angular.version.full + '/angular-resource.min.js', - 'angular-route.js': 'http://code.angularjs.org/' + angular.version.full + '/angular-route.min.js', - 'angular-sanitize.js': 'http://code.angularjs.org/' + angular.version.full + '/angular-sanitize.min.js', - 'angular-cookies.js': 'http://code.angularjs.org/' + angular.version.full + '/angular-cookies.min.js' -}; - - -function escape(text) { - return text. - replace(/\&/g, '&'). - replace(/\</g, '<'). - replace(/\>/g, '>'). - replace(/"/g, '"'); -} - -/** - * http://stackoverflow.com/questions/451486/pre-tag-loses-line-breaks-when-setting-innerhtml-in-ie - * http://stackoverflow.com/questions/195363/inserting-a-newline-into-a-pre-tag-ie-javascript - */ -function setHtmlIe8SafeWay(element, html) { - var newElement = angular.element('<pre>' + html + '</pre>'); - - element.html(''); - element.append(newElement.contents()); - return element; -} - - -directive.jsFiddle = function(getEmbeddedTemplate, escape, script) { - return { - terminal: true, - link: function(scope, element, attr) { - var name = '', - stylesheet = '<link rel="stylesheet" href="http://twitter.github.com/bootstrap/assets/css/bootstrap.css">\n', - fields = { - html: '', - css: '', - js: '' - }; - - angular.forEach(attr.jsFiddle.split(' '), function(file, index) { - var fileType = file.split('.')[1]; - - if (fileType == 'html') { - if (index == 0) { - fields[fileType] += - '<div ng-app' + (attr.module ? '="' + attr.module + '"' : '') + '>\n' + - getEmbeddedTemplate(file, 2); - } else { - fields[fileType] += '\n\n\n <!-- CACHE FILE: ' + file + ' -->\n' + - ' <script type="text/ng-template" id="' + file + '">\n' + - getEmbeddedTemplate(file, 4) + - ' </script>\n'; - } - } else { - fields[fileType] += getEmbeddedTemplate(file) + '\n'; - } - }); - - fields.html += '</div>\n'; - - setHtmlIe8SafeWay(element, - '<form class="jsfiddle" method="post" action="http://jsfiddle.net/api/post/library/pure/" target="_blank">' + - hiddenField('title', 'AngularJS Example: ' + name) + - hiddenField('css', '</style> <!-- Ugly Hack due to jsFiddle issue: http://goo.gl/BUfGZ --> \n' + - stylesheet + - script.angular + - (attr.resource ? script.resource : '') + - '<style>\n' + - fields.css) + - hiddenField('html', fields.html) + - hiddenField('js', fields.js) + - '<button class="btn btn-primary"><i class="icon-white icon-pencil"></i> Edit Me</button>' + - '</form>'); - - function hiddenField(name, value) { - return '<input type="hidden" name="' + name + '" value="' + escape(value) + '">'; - } - } - } -}; - - -directive.code = function() { - return {restrict: 'E', terminal: true}; -}; - - -directive.prettyprint = ['reindentCode', function(reindentCode) { - return { - restrict: 'C', - terminal: true, - compile: function(element) { - element.html(window.prettyPrintOne(reindentCode(element.html()), undefined, true)); - } - }; -}]; - - -directive.ngSetText = ['getEmbeddedTemplate', function(getEmbeddedTemplate) { - return { - restrict: 'CA', - priority: 10, - compile: function(element, attr) { - setHtmlIe8SafeWay(element, escape(getEmbeddedTemplate(attr.ngSetText))); - } - } -}] - - -directive.ngHtmlWrap = ['reindentCode', 'templateMerge', function(reindentCode, templateMerge) { - return { - compile: function(element, attr) { - var properties = { - head: '', - module: '', - body: element.text() - }, - html = "<!doctype html>\n<html ng-app{{module}}>\n <head>\n{{head:4}} </head>\n <body>\n{{body:4}} </body>\n</html>"; - - angular.forEach((attr.ngHtmlWrap || '').split(' '), function(dep) { - if (!dep) return; - dep = DEPENDENCIES[dep] || dep; - - var ext = dep.split(/\./).pop(); - - if (ext == 'css') { - properties.head += '<link rel="stylesheet" href="' + dep + '" type="text/css">\n'; - } else if(ext == 'js') { - properties.head += '<script src="' + dep + '"></script>\n'; - } else { - properties.module = '="' + dep + '"'; - } - }); - - setHtmlIe8SafeWay(element, escape(templateMerge(html, properties))); - } - } -}]; - - -directive.ngSetHtml = ['getEmbeddedTemplate', function(getEmbeddedTemplate) { - return { - restrict: 'CA', - priority: 10, - compile: function(element, attr) { - setHtmlIe8SafeWay(element, getEmbeddedTemplate(attr.ngSetHtml)); - } - } -}]; - - -directive.ngEvalJavascript = ['getEmbeddedTemplate', function(getEmbeddedTemplate) { - return { - compile: function (element, attr) { - var script = getEmbeddedTemplate(attr.ngEvalJavascript); - - try { - if (window.execScript) { // IE - window.execScript(script || '""'); // IE complains when evaling empty string - } else { - window.eval(script); - } - } catch (e) { - if (window.console) { - window.console.log(script, '\n', e); - } else { - window.alert(e); - } - } - } - }; -}]; - - -directive.ngEmbedApp = ['$templateCache', '$browser', '$rootScope', '$location', '$sniffer', - function($templateCache, $browser, docsRootScope, $location, $sniffer) { - return { - terminal: true, - link: function(scope, element, attrs) { - var modules = []; - - modules.push(['$provide', function($provide) { - $provide.value('$templateCache', $templateCache); - $provide.value('$anchorScroll', angular.noop); - $provide.value('$browser', $browser); - $provide.value('$sniffer', $sniffer); - $provide.provider('$location', function() { - this.$get = ['$rootScope', function($rootScope) { - docsRootScope.$on('$locationChangeSuccess', function(event, oldUrl, newUrl) { - $rootScope.$broadcast('$locationChangeSuccess', oldUrl, newUrl); - }); - return $location; - }]; - this.html5Mode = angular.noop; - }); - $provide.decorator('$timeout', ['$rootScope', '$delegate', function($rootScope, $delegate) { - return angular.extend(function(fn, delay) { - if (delay && delay > 50) { - return setTimeout(function() { - $rootScope.$apply(fn); - }, delay); - } else { - return $delegate.apply(this, arguments); - } - }, $delegate); - }]); - $provide.decorator('$rootScope', ['$delegate', function(embedRootScope) { - docsRootScope.$watch(function embedRootScopeDigestWatch() { - embedRootScope.$digest(); - }); - return embedRootScope; - }]); - }]); - if (attrs.ngEmbedApp) modules.push(attrs.ngEmbedApp); - - element.bind('click', function(event) { - if (event.target.attributes.getNamedItem('ng-click')) { - event.preventDefault(); - } - }); - - angular.bootstrap(element, modules); - } - }; -}]; - -service.reindentCode = function() { - return function (text, spaces) { - if (!text) return text; - var lines = text.split(/\r?\n/); - var prefix = ' '.substr(0, spaces || 0); - var i; - - // remove any leading blank lines - while (lines.length && lines[0].match(/^\s*$/)) lines.shift(); - // remove any trailing blank lines - while (lines.length && lines[lines.length - 1].match(/^\s*$/)) lines.pop(); - var minIndent = 999; - for (i = 0; i < lines.length; i++) { - var line = lines[0]; - var reindentCode = line.match(/^\s*/)[0]; - if (reindentCode !== line && reindentCode.length < minIndent) { - minIndent = reindentCode.length; - } - } - - for (i = 0; i < lines.length; i++) { - lines[i] = prefix + lines[i].substring(minIndent); - } - lines.push(''); - return lines.join('\n'); - } -}; - -service.templateMerge = ['reindentCode', function(indentCode) { - return function(template, properties) { - return template.replace(/\{\{(\w+)(?:\:(\d+))?\}\}/g, function(_, key, indent) { - var value = properties[key]; - - if (indent) { - value = indentCode(value, indent); - } - - return value == undefined ? '' : value; - }); - }; -}]; - -service.getEmbeddedTemplate = ['reindentCode', function(reindentCode) { - return function (id) { - var element = document.getElementById(id); - - if (!element) { - return null; - } - - return reindentCode(angular.element(element).html(), 0); - } -}]; - - -angular.module('bootstrapPrettify', []).directive(directive).factory(service); |
