written 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/written/app/assets/javascripts/written/core/content.coffee +10 -10
- data/lib/written/app/assets/javascripts/written/core/cursor.coffee +6 -6
- data/lib/written/app/assets/javascripts/written/core/document.coffee +39 -6
- data/lib/written/app/assets/javascripts/written/parsers/block/code.coffee +34 -30
- data/lib/written/app/assets/javascripts/written/parsers/block/heading.coffee +28 -30
- data/lib/written/app/assets/javascripts/written/parsers/block/image.coffee +30 -49
- data/lib/written/app/assets/javascripts/written/parsers/block/olist.coffee +46 -49
- data/lib/written/app/assets/javascripts/written/parsers/block/paragraph.coffee +28 -32
- data/lib/written/app/assets/javascripts/written/parsers/block/quote.coffee +30 -32
- data/lib/written/app/assets/javascripts/written/parsers/block/ulist.coffee +43 -45
- data/lib/written/app/assets/javascripts/written/parsers/inline/code.coffee +28 -30
- data/lib/written/app/assets/javascripts/written/parsers/inline/italic.coffee +21 -25
- data/lib/written/app/assets/javascripts/written/parsers/inline/link.coffee +21 -25
- data/lib/written/app/assets/javascripts/written/parsers/inline/strong.coffee +21 -25
- data/lib/written/app/assets/javascripts/written/parsers/parsers.coffee +87 -19
- data/lib/written/app/assets/javascripts/written.coffee +0 -1
- data/lib/written/version.rb +1 -1
- data/test/server/app/assets/javascripts/application.coffee +5 -15
- metadata +2 -18
- data/lib/written/app/assets/javascripts/written/core/extensions/text.coffee +0 -2
- data/lib/written/app/assets/javascripts/written/core/stringify.coffee +0 -15
- data/lib/written/app/assets/javascripts/written/parsers/block.coffee +0 -69
- data/lib/written/app/assets/javascripts/written/parsers/inline/list.coffee +0 -27
- data/lib/written/app/assets/javascripts/written/parsers/inline.coffee +0 -81
- data/lib/written/app/assets/javascripts/written/polyfills/CustomElements/CustomElements.js +0 -32
- data/lib/written/app/assets/javascripts/written/polyfills/CustomElements/base.js +0 -40
- data/lib/written/app/assets/javascripts/written/polyfills/CustomElements/boot.js +0 -124
- data/lib/written/app/assets/javascripts/written/polyfills/CustomElements/observe.js +0 -318
- data/lib/written/app/assets/javascripts/written/polyfills/CustomElements/register.js +0 -369
- data/lib/written/app/assets/javascripts/written/polyfills/CustomElements/traverse.js +0 -86
- data/lib/written/app/assets/javascripts/written/polyfills/CustomElements/upgrade.js +0 -130
- data/lib/written/app/assets/javascripts/written/polyfills/MutationObserver/MutationObserver.js +0 -575
- data/lib/written/app/assets/javascripts/written/polyfills/WeakMap/WeakMap.js +0 -49
- data/lib/written/app/assets/javascripts/written/polyfills/base.coffee +0 -10
- data/lib/written/app/assets/javascripts/written/polyfills/dom.js +0 -104
@@ -1,86 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* @license
|
3
|
-
* Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
|
4
|
-
* This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
|
5
|
-
* The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
|
6
|
-
* The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
|
7
|
-
* Code distributed by Google as part of the polymer project is also
|
8
|
-
* subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
|
9
|
-
*/
|
10
|
-
|
11
|
-
// helper methods for traversing through element trees
|
12
|
-
window.CustomElements.addModule(function(scope){
|
13
|
-
|
14
|
-
// imports
|
15
|
-
var IMPORT_LINK_TYPE = window.HTMLImports ? window.HTMLImports.IMPORT_LINK_TYPE : 'none';
|
16
|
-
|
17
|
-
// walk the subtree rooted at node, including descent into shadow-roots,
|
18
|
-
// applying 'cb' to each element
|
19
|
-
function forSubtree(node, cb) {
|
20
|
-
//flags.dom && node.childNodes && node.childNodes.length && console.group('subTree: ', node);
|
21
|
-
findAllElements(node, function(e) {
|
22
|
-
if (cb(e)) {
|
23
|
-
return true;
|
24
|
-
}
|
25
|
-
forRoots(e, cb);
|
26
|
-
});
|
27
|
-
forRoots(node, cb);
|
28
|
-
//flags.dom && node.childNodes && node.childNodes.length && console.groupEnd();
|
29
|
-
}
|
30
|
-
|
31
|
-
|
32
|
-
// walk the subtree rooted at node, applying 'find(element, data)' function
|
33
|
-
// to each element
|
34
|
-
// if 'find' returns true for 'element', do not search element's subtree
|
35
|
-
function findAllElements(node, find, data) {
|
36
|
-
var e = node.firstElementChild;
|
37
|
-
if (!e) {
|
38
|
-
e = node.firstChild;
|
39
|
-
while (e && e.nodeType !== Node.ELEMENT_NODE) {
|
40
|
-
e = e.nextSibling;
|
41
|
-
}
|
42
|
-
}
|
43
|
-
while (e) {
|
44
|
-
if (find(e, data) !== true) {
|
45
|
-
findAllElements(e, find, data);
|
46
|
-
}
|
47
|
-
e = e.nextElementSibling;
|
48
|
-
}
|
49
|
-
return null;
|
50
|
-
}
|
51
|
-
|
52
|
-
// walk all shadowRoots on a given node.
|
53
|
-
function forRoots(node, cb) {
|
54
|
-
var root = node.shadowRoot;
|
55
|
-
while(root) {
|
56
|
-
forSubtree(root, cb);
|
57
|
-
root = root.olderShadowRoot;
|
58
|
-
}
|
59
|
-
}
|
60
|
-
|
61
|
-
function forDocumentTree(doc, cb) {
|
62
|
-
_forDocumentTree(doc, cb, []);
|
63
|
-
}
|
64
|
-
|
65
|
-
|
66
|
-
function _forDocumentTree(doc, cb, processingDocuments) {
|
67
|
-
doc = window.wrap(doc);
|
68
|
-
if (processingDocuments.indexOf(doc) >= 0) {
|
69
|
-
return;
|
70
|
-
}
|
71
|
-
processingDocuments.push(doc);
|
72
|
-
var imports = doc.querySelectorAll('link[rel=' + IMPORT_LINK_TYPE + ']');
|
73
|
-
for (var i=0, l=imports.length, n; (i<l) && (n=imports[i]); i++) {
|
74
|
-
if (n.import) {
|
75
|
-
_forDocumentTree(n.import, cb, processingDocuments);
|
76
|
-
}
|
77
|
-
}
|
78
|
-
cb(doc);
|
79
|
-
}
|
80
|
-
|
81
|
-
// exports
|
82
|
-
scope.forDocumentTree = forDocumentTree;
|
83
|
-
scope.forSubtree = forSubtree;
|
84
|
-
|
85
|
-
|
86
|
-
});
|
@@ -1,130 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* @license
|
3
|
-
* Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
|
4
|
-
* This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
|
5
|
-
* The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
|
6
|
-
* The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
|
7
|
-
* Code distributed by Google as part of the polymer project is also
|
8
|
-
* subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
|
9
|
-
*/
|
10
|
-
|
11
|
-
/**
|
12
|
-
* Implements custom element upgrading
|
13
|
-
* @module upgrade
|
14
|
-
*/
|
15
|
-
|
16
|
-
window.CustomElements.addModule(function(scope) {
|
17
|
-
|
18
|
-
// imports
|
19
|
-
var flags = scope.flags;
|
20
|
-
|
21
|
-
/**
|
22
|
-
* Upgrade an element to a custom element. Upgrading an element
|
23
|
-
* causes the custom prototype to be applied, an `is` attribute
|
24
|
-
* to be attached (as needed), and invocation of the `readyCallback`.
|
25
|
-
* If the element is in the main document, the `attachedkCallback` method
|
26
|
-
* will be invoked.
|
27
|
-
* `upgrade` does nothing if the element is already upgraded, or
|
28
|
-
* if it matches no registered custom tag name.
|
29
|
-
*
|
30
|
-
* @method ugprade
|
31
|
-
* @param {Element} element The element to upgrade.
|
32
|
-
* @return {Element} The upgraded element.
|
33
|
-
*/
|
34
|
-
// Upgrade a node if it can be upgraded and is not already.
|
35
|
-
function upgrade(node, isAttached) {
|
36
|
-
// upgrade template elements before custom elements
|
37
|
-
if (node.localName === 'template') {
|
38
|
-
if (window.HTMLTemplateElement && HTMLTemplateElement.decorate) {
|
39
|
-
HTMLTemplateElement.decorate(node);
|
40
|
-
}
|
41
|
-
}
|
42
|
-
if (!node.__upgraded__ && (node.nodeType === Node.ELEMENT_NODE)) {
|
43
|
-
var is = node.getAttribute('is');
|
44
|
-
// find definition first by localName and secondarily by is attribute
|
45
|
-
var definition = scope.getRegisteredDefinition(node.localName) ||
|
46
|
-
scope.getRegisteredDefinition(is);
|
47
|
-
if (definition) {
|
48
|
-
// upgrade with is iff the definition tag matches the element tag
|
49
|
-
// and don't upgrade if there's an is and the definition does not extend
|
50
|
-
// a native element
|
51
|
-
if ((is && definition.tag == node.localName) ||
|
52
|
-
(!is && !definition.extends)) {
|
53
|
-
return upgradeWithDefinition(node, definition, isAttached);
|
54
|
-
}
|
55
|
-
}
|
56
|
-
}
|
57
|
-
}
|
58
|
-
|
59
|
-
function upgradeWithDefinition(element, definition, isAttached) {
|
60
|
-
flags.upgrade && console.group('upgrade:', element.localName);
|
61
|
-
// some definitions specify an 'is' attribute
|
62
|
-
if (definition.is) {
|
63
|
-
element.setAttribute('is', definition.is);
|
64
|
-
}
|
65
|
-
// make 'element' implement definition.prototype
|
66
|
-
implementPrototype(element, definition);
|
67
|
-
// flag as upgraded
|
68
|
-
element.__upgraded__ = true;
|
69
|
-
// lifecycle management
|
70
|
-
created(element);
|
71
|
-
// attachedCallback fires in tree order, call before recursing
|
72
|
-
if (isAttached) {
|
73
|
-
scope.attached(element);
|
74
|
-
}
|
75
|
-
// there should never be a shadow root on element at this point
|
76
|
-
scope.upgradeSubtree(element, isAttached);
|
77
|
-
flags.upgrade && console.groupEnd();
|
78
|
-
// OUTPUT
|
79
|
-
return element;
|
80
|
-
}
|
81
|
-
|
82
|
-
// Set __proto__ on supported platforms and use a mixin strategy when
|
83
|
-
// this is not supported; e.g. on IE10.
|
84
|
-
function implementPrototype(element, definition) {
|
85
|
-
// prototype swizzling is best
|
86
|
-
if (Object.__proto__) {
|
87
|
-
element.__proto__ = definition.prototype;
|
88
|
-
} else {
|
89
|
-
// where above we can re-acquire inPrototype via
|
90
|
-
// getPrototypeOf(Element), we cannot do so when
|
91
|
-
// we use mixin, so we install a magic reference
|
92
|
-
customMixin(element, definition.prototype, definition.native);
|
93
|
-
element.__proto__ = definition.prototype;
|
94
|
-
}
|
95
|
-
}
|
96
|
-
|
97
|
-
function customMixin(inTarget, inSrc, inNative) {
|
98
|
-
// TODO(sjmiles): 'used' allows us to only copy the 'youngest' version of
|
99
|
-
// any property. This set should be precalculated. We also need to
|
100
|
-
// consider this for supporting 'super'.
|
101
|
-
var used = {};
|
102
|
-
// start with inSrc
|
103
|
-
var p = inSrc;
|
104
|
-
// The default is HTMLElement.prototype, so we add a test to avoid mixing in
|
105
|
-
// native prototypes
|
106
|
-
while (p !== inNative && p !== HTMLElement.prototype) {
|
107
|
-
var keys = Object.getOwnPropertyNames(p);
|
108
|
-
for (var i=0, k; k=keys[i]; i++) {
|
109
|
-
if (!used[k]) {
|
110
|
-
Object.defineProperty(inTarget, k,
|
111
|
-
Object.getOwnPropertyDescriptor(p, k));
|
112
|
-
used[k] = 1;
|
113
|
-
}
|
114
|
-
}
|
115
|
-
p = Object.getPrototypeOf(p);
|
116
|
-
}
|
117
|
-
}
|
118
|
-
|
119
|
-
function created(element) {
|
120
|
-
// invoke createdCallback
|
121
|
-
if (element.createdCallback) {
|
122
|
-
element.createdCallback();
|
123
|
-
}
|
124
|
-
}
|
125
|
-
|
126
|
-
scope.upgrade = upgrade;
|
127
|
-
scope.upgradeWithDefinition = upgradeWithDefinition;
|
128
|
-
scope.implementPrototype = implementPrototype;
|
129
|
-
|
130
|
-
});
|