Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(508)

Unified Diff: lib/src/prism/plugins/previewer-easing/prism-previewer-easing.js

Issue 1418513006: update elements and fix some bugs (Closed) Base URL: git@github.com:dart-lang/polymer_elements.git@master
Patch Set: code review updates Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: lib/src/prism/plugins/previewer-easing/prism-previewer-easing.js
diff --git a/lib/src/prism/plugins/previewer-easing/prism-previewer-easing.js b/lib/src/prism/plugins/previewer-easing/prism-previewer-easing.js
new file mode 100644
index 0000000000000000000000000000000000000000..ad01dc330a75b2101b8a7e620079438b4f73183c
--- /dev/null
+++ b/lib/src/prism/plugins/previewer-easing/prism-previewer-easing.js
@@ -0,0 +1,117 @@
+(function() {
+
+ if (
+ typeof self !== 'undefined' && !self.Prism ||
+ typeof global !== 'undefined' && !global.Prism
+ ) {
+ return;
+ }
+
+ var languages = {
+ 'css': true,
+ 'less': true,
+ 'sass': [
+ {
+ lang: 'sass',
+ inside: 'inside',
+ before: 'punctuation',
+ root: Prism.languages.sass && Prism.languages.sass['variable-line']
+ },
+ {
+ lang: 'sass',
+ inside: 'inside',
+ root: Prism.languages.sass && Prism.languages.sass['property-line']
+ }
+ ],
+ 'scss': true,
+ 'stylus': [
+ {
+ lang: 'stylus',
+ before: 'hexcode',
+ inside: 'rest',
+ root: Prism.languages.stylus && Prism.languages.stylus['property-declaration'].inside
+ },
+ {
+ lang: 'stylus',
+ before: 'hexcode',
+ inside: 'rest',
+ root: Prism.languages.stylus && Prism.languages.stylus['variable-declaration'].inside
+ }
+ ]
+ };
+
+ Prism.hooks.add('before-highlight', function (env) {
+ if (env.language && languages[env.language] && !languages[env.language].initialized) {
+ var lang = languages[env.language];
+ if (Prism.util.type(lang) !== 'Array') {
+ lang = [lang];
+ }
+ lang.forEach(function(lang) {
+ var before, inside, root, skip;
+ if (lang === true) {
+ before = 'important';
+ inside = env.language;
+ lang = env.language;
+ } else {
+ before = lang.before || 'important';
+ inside = lang.inside || lang.lang;
+ root = lang.root || Prism.languages;
+ skip = lang.skip;
+ lang = env.language;
+ }
+
+ if (!skip && Prism.languages[lang]) {
+ Prism.languages.insertBefore(inside, before, {
+ 'easing': /\bcubic-bezier\((?:-?\d*\.?\d+,\s*){3}-?\d*\.?\d+\)\B|\b(?:linear|ease(?:-in)?(?:-out)?)(?=\s|[;}]|$)/i
+ }, root);
+ env.grammar = Prism.languages[lang];
+
+ languages[env.language] = {initialized: true};
+ }
+ });
+ }
+ });
+
+ if (Prism.plugins.Previewer) {
+ new Prism.plugins.Previewer('easing', function (value) {
+
+ value = {
+ 'linear': '0,0,1,1',
+ 'ease': '.25,.1,.25,1',
+ 'ease-in': '.42,0,1,1',
+ 'ease-out': '0,0,.58,1',
+ 'ease-in-out':'.42,0,.58,1'
+ }[value] || value;
+
+ var p = value.match(/-?\d*\.?\d+/g);
+
+ if(p.length === 4) {
+ p = p.map(function(p, i) { return (i % 2? 1 - p : p) * 100; });
+
+ this.querySelector('path').setAttribute('d', 'M0,100 C' + p[0] + ',' + p[1] + ', ' + p[2] + ',' + p[3] + ', 100,0');
+
+ var lines = this.querySelectorAll('line');
+ lines[0].setAttribute('x2', p[0]);
+ lines[0].setAttribute('y2', p[1]);
+ lines[1].setAttribute('x2', p[2]);
+ lines[1].setAttribute('y2', p[3]);
+
+ return true;
+ }
+
+ return false;
+ }, '*', function () {
+ this._elt.innerHTML = '<svg viewBox="-20 -20 140 140" width="100" height="100">' +
+ '<defs>' +
+ '<marker id="prism-previewer-easing-marker" viewBox="0 0 4 4" refX="2" refY="2" markerUnits="strokeWidth">' +
+ '<circle cx="2" cy="2" r="1.5" />' +
+ '</marker>' +
+ '</defs>' +
+ '<path d="M0,100 C20,50, 40,30, 100,0" />' +
+ '<line x1="0" y1="100" x2="20" y2="50" marker-start="url(' + location.href + '#prism-previewer-easing-marker)" marker-end="url(' + location.href + '#prism-previewer-easing-marker)" />' +
+ '<line x1="100" y1="0" x2="40" y2="30" marker-start="url(' + location.href + '#prism-previewer-easing-marker)" marker-end="url(' + location.href + '#prism-previewer-easing-marker)" />' +
+ '</svg>';
+ });
+ }
+
+}());

Powered by Google App Engine
This is Rietveld 408576698