| @@ 4310-4339 (lines=30) @@ | ||
| 4307 | }; |
|
| 4308 | var Uuid = { uuid: uuid }; |
|
| 4309 | ||
| 4310 | var create$1 = function (dom, rng) { |
|
| 4311 | var bookmark = {}; |
|
| 4312 | function setupEndPoint(start) { |
|
| 4313 | var offsetNode, container, offset; |
|
| 4314 | container = rng[start ? 'startContainer' : 'endContainer']; |
|
| 4315 | offset = rng[start ? 'startOffset' : 'endOffset']; |
|
| 4316 | if (container.nodeType === 1) { |
|
| 4317 | offsetNode = dom.create('span', { 'data-mce-type': 'bookmark' }); |
|
| 4318 | if (container.hasChildNodes()) { |
|
| 4319 | offset = Math.min(offset, container.childNodes.length - 1); |
|
| 4320 | if (start) { |
|
| 4321 | container.insertBefore(offsetNode, container.childNodes[offset]); |
|
| 4322 | } else { |
|
| 4323 | dom.insertAfter(offsetNode, container.childNodes[offset]); |
|
| 4324 | } |
|
| 4325 | } else { |
|
| 4326 | container.appendChild(offsetNode); |
|
| 4327 | } |
|
| 4328 | container = offsetNode; |
|
| 4329 | offset = 0; |
|
| 4330 | } |
|
| 4331 | bookmark[start ? 'startContainer' : 'endContainer'] = container; |
|
| 4332 | bookmark[start ? 'startOffset' : 'endOffset'] = offset; |
|
| 4333 | } |
|
| 4334 | setupEndPoint(true); |
|
| 4335 | if (!rng.collapsed) { |
|
| 4336 | setupEndPoint(); |
|
| 4337 | } |
|
| 4338 | return bookmark; |
|
| 4339 | }; |
|
| 4340 | var resolve$1 = function (dom, bookmark) { |
|
| 4341 | function restoreEndPoint(start) { |
|
| 4342 | var container, offset, node; |
|
| @@ 131-160 (lines=30) @@ | ||
| 128 | }; |
|
| 129 | ||
| 130 | var DOM = global$6.DOM; |
|
| 131 | var createBookmark = function (rng) { |
|
| 132 | var bookmark = {}; |
|
| 133 | var setupEndPoint = function (start) { |
|
| 134 | var offsetNode, container, offset; |
|
| 135 | container = rng[start ? 'startContainer' : 'endContainer']; |
|
| 136 | offset = rng[start ? 'startOffset' : 'endOffset']; |
|
| 137 | if (container.nodeType === 1) { |
|
| 138 | offsetNode = DOM.create('span', { 'data-mce-type': 'bookmark' }); |
|
| 139 | if (container.hasChildNodes()) { |
|
| 140 | offset = Math.min(offset, container.childNodes.length - 1); |
|
| 141 | if (start) { |
|
| 142 | container.insertBefore(offsetNode, container.childNodes[offset]); |
|
| 143 | } else { |
|
| 144 | DOM.insertAfter(offsetNode, container.childNodes[offset]); |
|
| 145 | } |
|
| 146 | } else { |
|
| 147 | container.appendChild(offsetNode); |
|
| 148 | } |
|
| 149 | container = offsetNode; |
|
| 150 | offset = 0; |
|
| 151 | } |
|
| 152 | bookmark[start ? 'startContainer' : 'endContainer'] = container; |
|
| 153 | bookmark[start ? 'startOffset' : 'endOffset'] = offset; |
|
| 154 | }; |
|
| 155 | setupEndPoint(true); |
|
| 156 | if (!rng.collapsed) { |
|
| 157 | setupEndPoint(); |
|
| 158 | } |
|
| 159 | return bookmark; |
|
| 160 | }; |
|
| 161 | var resolveBookmark = function (bookmark) { |
|
| 162 | function restoreEndPoint(start) { |
|
| 163 | var container, offset, node; |
|