233 var call = function (thunk) { |
233 var call = function (thunk) { |
234 return thunk(); |
234 return thunk(); |
235 }; |
235 }; |
236 var id = function (n) { |
236 var id = function (n) { |
237 return n; |
237 return n; |
238 }; |
|
239 var noop = function () { |
|
240 }; |
|
241 var nul = function () { |
|
242 return null; |
|
243 }; |
|
244 var undef = function () { |
|
245 return undefined; |
|
246 }; |
238 }; |
247 var me = { |
239 var me = { |
248 fold: function (n, s) { |
240 fold: function (n, s) { |
249 return n(); |
241 return n(); |
250 }, |
242 }, |
251 is: never$1, |
243 is: never, |
252 isSome: never$1, |
244 isSome: never, |
253 isNone: always$1, |
245 isNone: always, |
254 getOr: id, |
246 getOr: id, |
255 getOrThunk: call, |
247 getOrThunk: call, |
256 getOrDie: function (msg) { |
248 getOrDie: function (msg) { |
257 throw new Error(msg || 'error: getOrDie called on none.'); |
249 throw new Error(msg || 'error: getOrDie called on none.'); |
258 }, |
250 }, |
259 getOrNull: nul, |
251 getOrNull: constant(null), |
260 getOrUndefined: undef, |
252 getOrUndefined: constant(undefined), |
261 or: id, |
253 or: id, |
262 orThunk: call, |
254 orThunk: call, |
263 map: none, |
255 map: none, |
264 ap: none, |
|
265 each: noop, |
256 each: noop, |
266 bind: none, |
257 bind: none, |
267 flatten: none, |
258 exists: never, |
268 exists: never$1, |
259 forall: always, |
269 forall: always$1, |
|
270 filter: none, |
260 filter: none, |
271 equals: eq, |
261 equals: eq, |
272 equals_: eq, |
262 equals_: eq, |
273 toArray: function () { |
263 toArray: function () { |
274 return []; |
264 return []; |
275 }, |
265 }, |
276 toString: constant('none()') |
266 toString: constant('none()') |
277 }; |
267 }; |
278 if (Object.freeze) |
268 if (Object.freeze) { |
279 Object.freeze(me); |
269 Object.freeze(me); |
|
270 } |
280 return me; |
271 return me; |
281 }(); |
272 }(); |
282 var some = function (a) { |
273 var some = function (a) { |
283 var constant_a = function () { |
274 var constant_a = constant(a); |
284 return a; |
|
285 }; |
|
286 var self = function () { |
275 var self = function () { |
287 return me; |
276 return me; |
288 }; |
|
289 var map = function (f) { |
|
290 return some(f(a)); |
|
291 }; |
277 }; |
292 var bind = function (f) { |
278 var bind = function (f) { |
293 return f(a); |
279 return f(a); |
294 }; |
280 }; |
295 var me = { |
281 var me = { |
297 return s(a); |
283 return s(a); |
298 }, |
284 }, |
299 is: function (v) { |
285 is: function (v) { |
300 return a === v; |
286 return a === v; |
301 }, |
287 }, |
302 isSome: always$1, |
288 isSome: always, |
303 isNone: never$1, |
289 isNone: never, |
304 getOr: constant_a, |
290 getOr: constant_a, |
305 getOrThunk: constant_a, |
291 getOrThunk: constant_a, |
306 getOrDie: constant_a, |
292 getOrDie: constant_a, |
307 getOrNull: constant_a, |
293 getOrNull: constant_a, |
308 getOrUndefined: constant_a, |
294 getOrUndefined: constant_a, |
309 or: self, |
295 or: self, |
310 orThunk: self, |
296 orThunk: self, |
311 map: map, |
297 map: function (f) { |
312 ap: function (optfab) { |
298 return some(f(a)); |
313 return optfab.fold(none, function (fab) { |
|
314 return some(fab(a)); |
|
315 }); |
|
316 }, |
299 }, |
317 each: function (f) { |
300 each: function (f) { |
318 f(a); |
301 f(a); |
319 }, |
302 }, |
320 bind: bind, |
303 bind: bind, |
321 flatten: constant_a, |
|
322 exists: bind, |
304 exists: bind, |
323 forall: bind, |
305 forall: bind, |
324 filter: function (f) { |
306 filter: function (f) { |
325 return f(a) ? me : NONE; |
307 return f(a) ? me : NONE; |
326 }, |
|
327 equals: function (o) { |
|
328 return o.is(a); |
|
329 }, |
|
330 equals_: function (o, elementEq) { |
|
331 return o.fold(never$1, function (b) { |
|
332 return elementEq(a, b); |
|
333 }); |
|
334 }, |
308 }, |
335 toArray: function () { |
309 toArray: function () { |
336 return [a]; |
310 return [a]; |
337 }, |
311 }, |
338 toString: function () { |
312 toString: function () { |
339 return 'some(' + a + ')'; |
313 return 'some(' + a + ')'; |
|
314 }, |
|
315 equals: function (o) { |
|
316 return o.is(a); |
|
317 }, |
|
318 equals_: function (o, elementEq) { |
|
319 return o.fold(never, function (b) { |
|
320 return elementEq(a, b); |
|
321 }); |
340 } |
322 } |
341 }; |
323 }; |
342 return me; |
324 return me; |
343 }; |
325 }; |
344 var from = function (value) { |
326 var from = function (value) { |
349 none: none, |
331 none: none, |
350 from: from |
332 from: from |
351 }; |
333 }; |
352 |
334 |
353 var typeOf = function (x) { |
335 var typeOf = function (x) { |
354 if (x === null) |
336 if (x === null) { |
355 return 'null'; |
337 return 'null'; |
|
338 } |
356 var t = typeof x; |
339 var t = typeof x; |
357 if (t === 'object' && Array.prototype.isPrototypeOf(x)) |
340 if (t === 'object' && (Array.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'Array')) { |
358 return 'array'; |
341 return 'array'; |
359 if (t === 'object' && String.prototype.isPrototypeOf(x)) |
342 } |
|
343 if (t === 'object' && (String.prototype.isPrototypeOf(x) || x.constructor && x.constructor.name === 'String')) { |
360 return 'string'; |
344 return 'string'; |
|
345 } |
361 return t; |
346 return t; |
362 }; |
347 }; |
363 var isType = function (type) { |
348 var isType = function (type) { |
364 return function (value) { |
349 return function (value) { |
365 return typeOf(value) === type; |
350 return typeOf(value) === type; |
366 }; |
351 }; |
367 }; |
352 }; |
368 var isString = isType('string'); |
353 var isString = isType('string'); |
|
354 var isArray = isType('array'); |
369 var isBoolean = isType('boolean'); |
355 var isBoolean = isType('boolean'); |
370 var isFunction = isType('function'); |
356 var isFunction = isType('function'); |
371 var isNumber = isType('number'); |
357 var isNumber = isType('number'); |
372 |
358 |
|
359 var nativeSlice = Array.prototype.slice; |
|
360 var nativePush = Array.prototype.push; |
373 var map = function (xs, f) { |
361 var map = function (xs, f) { |
374 var len = xs.length; |
362 var len = xs.length; |
375 var r = new Array(len); |
363 var r = new Array(len); |
376 for (var i = 0; i < len; i++) { |
364 for (var i = 0; i < len; i++) { |
377 var x = xs[i]; |
365 var x = xs[i]; |
378 r[i] = f(x, i, xs); |
366 r[i] = f(x, i); |
379 } |
367 } |
380 return r; |
368 return r; |
381 }; |
369 }; |
382 var each = function (xs, f) { |
370 var each = function (xs, f) { |
383 for (var i = 0, len = xs.length; i < len; i++) { |
371 for (var i = 0, len = xs.length; i < len; i++) { |
384 var x = xs[i]; |
372 var x = xs[i]; |
385 f(x, i, xs); |
373 f(x, i); |
386 } |
374 } |
387 }; |
375 }; |
388 var filter = function (xs, pred) { |
376 var filter = function (xs, pred) { |
389 var r = []; |
377 var r = []; |
390 for (var i = 0, len = xs.length; i < len; i++) { |
378 for (var i = 0, len = xs.length; i < len; i++) { |
391 var x = xs[i]; |
379 var x = xs[i]; |
392 if (pred(x, i, xs)) { |
380 if (pred(x, i)) { |
393 r.push(x); |
381 r.push(x); |
394 } |
382 } |
395 } |
383 } |
396 return r; |
384 return r; |
397 }; |
385 }; |
425 return acc; |
413 return acc; |
426 }; |
414 }; |
427 var find = function (xs, pred) { |
415 var find = function (xs, pred) { |
428 for (var i = 0, len = xs.length; i < len; i++) { |
416 for (var i = 0, len = xs.length; i < len; i++) { |
429 var x = xs[i]; |
417 var x = xs[i]; |
430 if (pred(x, i, xs)) { |
418 if (pred(x, i)) { |
431 return Option.some(x); |
419 return Option.some(x); |
432 } |
420 } |
433 } |
421 } |
434 return Option.none(); |
422 return Option.none(); |
435 }; |
423 }; |
436 var push = Array.prototype.push; |
|
437 var flatten = function (xs) { |
424 var flatten = function (xs) { |
438 var r = []; |
425 var r = []; |
439 for (var i = 0, len = xs.length; i < len; ++i) { |
426 for (var i = 0, len = xs.length; i < len; ++i) { |
440 if (!Array.prototype.isPrototypeOf(xs[i])) |
427 if (!isArray(xs[i])) { |
441 throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs); |
428 throw new Error('Arr.flatten item ' + i + ' was not an array, input: ' + xs); |
442 push.apply(r, xs[i]); |
429 } |
|
430 nativePush.apply(r, xs[i]); |
443 } |
431 } |
444 return r; |
432 return r; |
445 }; |
433 }; |
446 var bind = function (xs, f) { |
434 var bind = function (xs, f) { |
447 var output = map(xs, f); |
435 var output = map(xs, f); |
448 return flatten(output); |
436 return flatten(output); |
449 }; |
437 }; |
450 var slice = Array.prototype.slice; |
|
451 var reverse = function (xs) { |
438 var reverse = function (xs) { |
452 var r = slice.call(xs, 0); |
439 var r = nativeSlice.call(xs, 0); |
453 r.reverse(); |
440 r.reverse(); |
454 return r; |
441 return r; |
455 }; |
442 }; |
456 var head = function (xs) { |
443 var head = function (xs) { |
457 return xs.length === 0 ? Option.none() : Option.some(xs[0]); |
444 return xs.length === 0 ? Option.none() : Option.some(xs[0]); |
458 }; |
445 }; |
459 var last = function (xs) { |
446 var last = function (xs) { |
460 return xs.length === 0 ? Option.none() : Option.some(xs[xs.length - 1]); |
447 return xs.length === 0 ? Option.none() : Option.some(xs[xs.length - 1]); |
461 }; |
448 }; |
462 var from$1 = isFunction(Array.from) ? Array.from : function (x) { |
449 var from$1 = isFunction(Array.from) ? Array.from : function (x) { |
463 return slice.call(x); |
450 return nativeSlice.call(x); |
464 }; |
451 }; |
465 |
452 |
466 var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')(); |
453 var Global = typeof domGlobals.window !== 'undefined' ? domGlobals.window : Function('return this;')(); |
467 |
454 |
468 var path = function (parts, scope) { |
455 var path = function (parts, scope) { |
469 var o = scope !== undefined && scope !== null ? scope : Global; |
456 var o = scope !== undefined && scope !== null ? scope : Global; |
470 for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i) |
457 for (var i = 0; i < parts.length && o !== undefined && o !== null; ++i) { |
471 o = o[parts[i]]; |
458 o = o[parts[i]]; |
|
459 } |
472 return o; |
460 return o; |
473 }; |
461 }; |
474 var resolve = function (p, scope) { |
462 var resolve = function (p, scope) { |
475 var parts = p.split('.'); |
463 var parts = p.split('.'); |
476 return path(parts, scope); |
464 return path(parts, scope); |
479 var unsafe = function (name, scope) { |
467 var unsafe = function (name, scope) { |
480 return resolve(name, scope); |
468 return resolve(name, scope); |
481 }; |
469 }; |
482 var getOrDie = function (name, scope) { |
470 var getOrDie = function (name, scope) { |
483 var actual = unsafe(name, scope); |
471 var actual = unsafe(name, scope); |
484 if (actual === undefined || actual === null) |
472 if (actual === undefined || actual === null) { |
485 throw name + ' not available on this browser'; |
473 throw new Error(name + ' not available on this browser'); |
|
474 } |
486 return actual; |
475 return actual; |
487 }; |
476 }; |
488 var Global$1 = { getOrDie: getOrDie }; |
477 var Global$1 = { getOrDie: getOrDie }; |
489 |
478 |
490 var htmlElement = function (scope) { |
479 var htmlElement = function (scope) { |
611 fromText: fromText, |
600 fromText: fromText, |
612 fromDom: fromDom, |
601 fromDom: fromDom, |
613 fromPoint: fromPoint |
602 fromPoint: fromPoint |
614 }; |
603 }; |
615 |
604 |
616 var liftN = function (arr, f) { |
605 var lift2 = function (oa, ob, f) { |
617 var r = []; |
606 return oa.isSome() && ob.isSome() ? Option.some(f(oa.getOrDie(), ob.getOrDie())) : Option.none(); |
618 for (var i = 0; i < arr.length; i++) { |
|
619 var x = arr[i]; |
|
620 if (x.isSome()) { |
|
621 r.push(x.getOrDie()); |
|
622 } else { |
|
623 return Option.none(); |
|
624 } |
|
625 } |
|
626 return Option.some(f.apply(null, r)); |
|
627 }; |
607 }; |
628 |
608 |
629 var fromElements = function (elements, scope) { |
609 var fromElements = function (elements, scope) { |
630 var doc = scope || domGlobals.document; |
610 var doc = scope || domGlobals.document; |
631 var fragment = doc.createDocumentFragment(); |
611 var fragment = doc.createDocumentFragment(); |
701 }; |
681 }; |
702 |
682 |
703 var firstMatch = function (regexes, s) { |
683 var firstMatch = function (regexes, s) { |
704 for (var i = 0; i < regexes.length; i++) { |
684 for (var i = 0; i < regexes.length; i++) { |
705 var x = regexes[i]; |
685 var x = regexes[i]; |
706 if (x.test(s)) |
686 if (x.test(s)) { |
707 return x; |
687 return x; |
|
688 } |
708 } |
689 } |
709 return undefined; |
690 return undefined; |
710 }; |
691 }; |
711 var find$1 = function (regexes, agent) { |
692 var find$1 = function (regexes, agent) { |
712 var r = firstMatch(regexes, agent); |
693 var r = firstMatch(regexes, agent); |
713 if (!r) |
694 if (!r) { |
714 return { |
695 return { |
715 major: 0, |
696 major: 0, |
716 minor: 0 |
697 minor: 0 |
717 }; |
698 }; |
|
699 } |
718 var group = function (i) { |
700 var group = function (i) { |
719 return Number(agent.replace(r, '$' + i)); |
701 return Number(agent.replace(r, '$' + i)); |
720 }; |
702 }; |
721 return nu(group(1), group(2)); |
703 return nu(group(1), group(2)); |
722 }; |
704 }; |
723 var detect = function (versionRegexes, agent) { |
705 var detect = function (versionRegexes, agent) { |
724 var cleanedAgent = String(agent).toLowerCase(); |
706 var cleanedAgent = String(agent).toLowerCase(); |
725 if (versionRegexes.length === 0) |
707 if (versionRegexes.length === 0) { |
726 return unknown(); |
708 return unknown(); |
|
709 } |
727 return find$1(versionRegexes, cleanedAgent); |
710 return find$1(versionRegexes, cleanedAgent); |
728 }; |
711 }; |
729 var unknown = function () { |
712 var unknown = function () { |
730 return nu(0, 0); |
713 return nu(0, 0); |
731 }; |
714 }; |
1022 var ENTITY = domGlobals.Node.ENTITY_NODE; |
1004 var ENTITY = domGlobals.Node.ENTITY_NODE; |
1023 var NOTATION = domGlobals.Node.NOTATION_NODE; |
1005 var NOTATION = domGlobals.Node.NOTATION_NODE; |
1024 |
1006 |
1025 var ELEMENT$1 = ELEMENT; |
1007 var ELEMENT$1 = ELEMENT; |
1026 var is = function (element, selector) { |
1008 var is = function (element, selector) { |
1027 var elem = element.dom(); |
1009 var dom = element.dom(); |
1028 if (elem.nodeType !== ELEMENT$1) { |
1010 if (dom.nodeType !== ELEMENT$1) { |
1029 return false; |
1011 return false; |
1030 } else if (elem.matches !== undefined) { |
|
1031 return elem.matches(selector); |
|
1032 } else if (elem.msMatchesSelector !== undefined) { |
|
1033 return elem.msMatchesSelector(selector); |
|
1034 } else if (elem.webkitMatchesSelector !== undefined) { |
|
1035 return elem.webkitMatchesSelector(selector); |
|
1036 } else if (elem.mozMatchesSelector !== undefined) { |
|
1037 return elem.mozMatchesSelector(selector); |
|
1038 } else { |
1012 } else { |
1039 throw new Error('Browser lacks native selectors'); |
1013 var elem = dom; |
|
1014 if (elem.matches !== undefined) { |
|
1015 return elem.matches(selector); |
|
1016 } else if (elem.msMatchesSelector !== undefined) { |
|
1017 return elem.msMatchesSelector(selector); |
|
1018 } else if (elem.webkitMatchesSelector !== undefined) { |
|
1019 return elem.webkitMatchesSelector(selector); |
|
1020 } else if (elem.mozMatchesSelector !== undefined) { |
|
1021 return elem.mozMatchesSelector(selector); |
|
1022 } else { |
|
1023 throw new Error('Browser lacks native selectors'); |
|
1024 } |
1040 } |
1025 } |
1041 }; |
1026 }; |
1042 |
1027 |
1043 var eq = function (e1, e2) { |
1028 var eq = function (e1, e2) { |
1044 return e1.dom() === e2.dom(); |
1029 return e1.dom() === e2.dom(); |
1054 var browser = PlatformDetection$1.detect().browser; |
1039 var browser = PlatformDetection$1.detect().browser; |
1055 var contains$1 = browser.isIE() ? ieContains : regularContains; |
1040 var contains$1 = browser.isIE() ? ieContains : regularContains; |
1056 var is$1 = is; |
1041 var is$1 = is; |
1057 |
1042 |
1058 var parent = function (element) { |
1043 var parent = function (element) { |
1059 var dom = element.dom(); |
1044 return Option.from(element.dom().parentNode).map(Element.fromDom); |
1060 return Option.from(dom.parentNode).map(Element.fromDom); |
|
1061 }; |
1045 }; |
1062 var children = function (element) { |
1046 var children = function (element) { |
1063 var dom = element.dom(); |
1047 return map(element.dom().childNodes, Element.fromDom); |
1064 return map(dom.childNodes, Element.fromDom); |
|
1065 }; |
1048 }; |
1066 var child = function (element, index) { |
1049 var child = function (element, index) { |
1067 var cs = element.dom().childNodes; |
1050 var cs = element.dom().childNodes; |
1068 return Option.from(cs[index]).map(Element.fromDom); |
1051 return Option.from(cs[index]).map(Element.fromDom); |
1069 }; |
1052 }; |
1105 |
1088 |
1106 var name = function (element) { |
1089 var name = function (element) { |
1107 var r = element.dom().nodeName; |
1090 var r = element.dom().nodeName; |
1108 return r.toLowerCase(); |
1091 return r.toLowerCase(); |
1109 }; |
1092 }; |
|
1093 var type = function (element) { |
|
1094 return element.dom().nodeType; |
|
1095 }; |
|
1096 var isType$1 = function (t) { |
|
1097 return function (element) { |
|
1098 return type(element) === t; |
|
1099 }; |
|
1100 }; |
|
1101 var isElement = isType$1(ELEMENT); |
1110 |
1102 |
1111 var rawSet = function (dom, key, value) { |
1103 var rawSet = function (dom, key, value) { |
1112 if (isString(value) || isBoolean(value) || isNumber(value)) { |
1104 if (isString(value) || isBoolean(value) || isNumber(value)) { |
1113 dom.setAttribute(key, value + ''); |
1105 dom.setAttribute(key, value + ''); |
1114 } else { |
1106 } else { |
1128 return acc; |
1120 return acc; |
1129 }, {}); |
1121 }, {}); |
1130 }; |
1122 }; |
1131 |
1123 |
1132 var isSupported = function (dom) { |
1124 var isSupported = function (dom) { |
1133 return dom.style !== undefined; |
1125 return dom.style !== undefined && isFunction(dom.style.getPropertyValue); |
1134 }; |
1126 }; |
1135 |
1127 |
1136 var internalSet = function (dom, property, value) { |
1128 var internalSet = function (dom, property, value) { |
1137 if (!isString(value)) { |
1129 if (!isString(value)) { |
1138 domGlobals.console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom); |
1130 domGlobals.console.error('Invalid call to CSS.set. Property ', property, ':: Value ', value, ':: Element ', dom); |
1175 for (var i = 1; i < segments.length; i++) { |
1167 for (var i = 1; i < segments.length; i++) { |
1176 joinSegment(segments[i - 1], segments[i]); |
1168 joinSegment(segments[i - 1], segments[i]); |
1177 } |
1169 } |
1178 }; |
1170 }; |
1179 var appendSegments = function (head$1, tail) { |
1171 var appendSegments = function (head$1, tail) { |
1180 liftN([ |
1172 lift2(last(head$1), head(tail), joinSegment); |
1181 last(head$1), |
|
1182 head(tail) |
|
1183 ], joinSegment); |
|
1184 }; |
1173 }; |
1185 var createSegment = function (scope, listType) { |
1174 var createSegment = function (scope, listType) { |
1186 var segment = { |
1175 var segment = { |
1187 list: Element.fromTag(listType, scope), |
1176 list: Element.fromTag(listType, scope), |
1188 item: Element.fromTag('li', scope) |
1177 item: Element.fromTag('li', scope) |
1268 var children$1 = children(li); |
1257 var children$1 = children(li); |
1269 var content = hasLastChildList(li) ? children$1.slice(0, -1) : children$1; |
1258 var content = hasLastChildList(li) ? children$1.slice(0, -1) : children$1; |
1270 return map(content, deep); |
1259 return map(content, deep); |
1271 }; |
1260 }; |
1272 var createEntry = function (li, depth, isSelected) { |
1261 var createEntry = function (li, depth, isSelected) { |
1273 return parent(li).map(function (list) { |
1262 return parent(li).filter(isElement).map(function (list) { |
1274 return { |
1263 return { |
1275 depth: depth, |
1264 depth: depth, |
1276 isSelected: isSelected, |
1265 isSelected: isSelected, |
1277 content: cloneItemContent(li), |
1266 content: cloneItemContent(li), |
1278 itemAttributes: clone(li), |
1267 itemAttributes: clone(li), |
1300 return nu; |
1289 return nu; |
1301 }; |
1290 }; |
1302 var baseMerge = function (merger) { |
1291 var baseMerge = function (merger) { |
1303 return function () { |
1292 return function () { |
1304 var objects = new Array(arguments.length); |
1293 var objects = new Array(arguments.length); |
1305 for (var i = 0; i < objects.length; i++) |
1294 for (var i = 0; i < objects.length; i++) { |
1306 objects[i] = arguments[i]; |
1295 objects[i] = arguments[i]; |
1307 if (objects.length === 0) |
1296 } |
|
1297 if (objects.length === 0) { |
1308 throw new Error('Can\'t merge zero objects'); |
1298 throw new Error('Can\'t merge zero objects'); |
|
1299 } |
1309 var ret = {}; |
1300 var ret = {}; |
1310 for (var j = 0; j < objects.length; j++) { |
1301 for (var j = 0; j < objects.length; j++) { |
1311 var curObject = objects[j]; |
1302 var curObject = objects[j]; |
1312 for (var key in curObject) |
1303 for (var key in curObject) { |
1313 if (hasOwnProperty.call(curObject, key)) { |
1304 if (hasOwnProperty.call(curObject, key)) { |
1314 ret[key] = merger(ret[key], curObject[key]); |
1305 ret[key] = merger(ret[key], curObject[key]); |
1315 } |
1306 } |
|
1307 } |
1316 } |
1308 } |
1317 return ret; |
1309 return ret; |
1318 }; |
1310 }; |
1319 }; |
1311 }; |
1320 var merge = baseMerge(shallow); |
1312 var merge = baseMerge(shallow); |
1472 return indentEntry(indentation, entry); |
1464 return indentEntry(indentation, entry); |
1473 }); |
1465 }); |
1474 }; |
1466 }; |
1475 var getItemSelection = function (editor) { |
1467 var getItemSelection = function (editor) { |
1476 var selectedListItems = map(Selection.getSelectedListItems(editor), Element.fromDom); |
1468 var selectedListItems = map(Selection.getSelectedListItems(editor), Element.fromDom); |
1477 return liftN([ |
1469 return lift2(find(selectedListItems, not(hasFirstChildList)), find(reverse(selectedListItems), not(hasFirstChildList)), function (start, end) { |
1478 find(selectedListItems, not(hasFirstChildList)), |
|
1479 find(reverse(selectedListItems), not(hasFirstChildList)) |
|
1480 ], function (start, end) { |
|
1481 return { |
1470 return { |
1482 start: start, |
1471 start: start, |
1483 end: end |
1472 end: end |
1484 }; |
1473 }; |
1485 }); |
1474 }); |
1527 } |
1516 } |
1528 }; |
1517 }; |
1529 var SplitList = { splitList: splitList }; |
1518 var SplitList = { splitList: splitList }; |
1530 |
1519 |
1531 var outdentDlItem = function (editor, item) { |
1520 var outdentDlItem = function (editor, item) { |
1532 if (is$1(item, 'DD')) { |
1521 if (is$1(item, 'dd')) { |
1533 mutate(item, 'DT'); |
1522 mutate(item, 'dt'); |
1534 } else if (is$1(item, 'DT')) { |
1523 } else if (is$1(item, 'dt')) { |
1535 parent(item).each(function (dl) { |
1524 parent(item).each(function (dl) { |
1536 return SplitList.splitList(editor, dl.dom(), item.dom()); |
1525 return SplitList.splitList(editor, dl.dom(), item.dom()); |
1537 }); |
1526 }); |
1538 } |
1527 } |
1539 }; |
1528 }; |
1540 var indentDlItem = function (item) { |
1529 var indentDlItem = function (item) { |
1541 if (is$1(item, 'DT')) { |
1530 if (is$1(item, 'dt')) { |
1542 mutate(item, 'DD'); |
1531 mutate(item, 'dd'); |
1543 } |
1532 } |
1544 }; |
1533 }; |
1545 var dlIndentation = function (editor, indentation, dlItems) { |
1534 var dlIndentation = function (editor, indentation, dlItems) { |
1546 if (indentation === 'Indent') { |
1535 if (indentation === 'Indent') { |
1547 each(dlItems, indentDlItem); |
1536 each(dlItems, indentDlItem); |