@@ -420,27 +420,25 @@
420 420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
dom.hasClass = function(e,c){
421 421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return (e && e.classList) ? e.classList.contains(c) : false;
422 422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
423 423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
424 424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/**
425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Each argument after the first may be a single DOM element
426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- or a container of them with a forEach() method. All such
427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- elements are appended, in the given order, to the dest
428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- element.
425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Each argument after the first may be a single DOM element or a
426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ container of them with a forEach() method. All such elements are
427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ appended, in the given order, to the dest element using
428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ dom.append(dest,theElement). Thus the 2nd and susequent arguments
429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ may be any type supported as the 2nd argument to that function.
429 430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
430 431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Returns dest.
431 432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
432 433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
dom.moveTo = function(dest,e){
433 434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const n = arguments.length;
434 435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
var i = 1;
436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const self = this;
435 437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for( ; i < n; ++i ){
436 438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e = arguments[i];
437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(e.forEach){
438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- e.forEach((x)=>dest.appendChild(x));
439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- dest.appendChild(e);
441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.append(dest, e);
442 440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
443 441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return dest;
444 442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
445 443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/**
446 444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Each argument after the first may be a single DOM element
@@ -697,7 +695,185 @@
697 695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
698 696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
699 697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return e;
700 698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
701 699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /**
701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Parses a string as HTML.
702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Usages:
704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ (htmlString)
706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ (DOMElement target, htmlString)
707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ The first form parses the string as HTML and returns an Array of
709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ all elements parsed from it. If string is falsy then it returns
710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ an empty array.
711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ The second form parses the HTML string and appends all elements
713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ to the given target element using dom.append(), then returns the
714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ first argument.
715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Caveats:
717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - It expects a partial HTML document as input, not a full HTML
719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ document with a HEAD and BODY tags. Because of how DOMParser
720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ works, only children of the parsed document's (virtual) body are
721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ acknowledged by this routine.
722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ dom.parseHtml = function(){
724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ let childs, string, tgt;
725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(1===arguments.length){
726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ string = arguments[0];
727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if(2==arguments.length){
728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ tgt = arguments[0];
729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ string = arguments[1];
730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(string){
732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const newNode = new DOMParser().parseFromString(string, 'text/html');
733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ childs = newNode.documentElement.querySelector('body');
734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ childs = childs ? Array.prototype.slice.call(childs.childNodes, 0) : [];
735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* ^^^ we need a clone of the list because reparenting them
736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ modifies a NodeList they're in. */
737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ childs = [];
739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return tgt ? this.moveTo(tgt, childs) : childs;
741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /**
744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Sets up pseudo-automatic content preview handling between a
745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ source element (typically a TEXTAREA) and a target rendering
746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ element (typically a DIV). The selector argument must be one of:
747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - A single DOM element
749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - A collection of DOM elements with a forEach method.
750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - A CSS selector
751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Each element in the collection must have the following data
753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ attributes:
754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - data-f-preview-from: is either a DOM element id, WITH a leading
756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ '#' prefix, or the name of a method (see below). If it's an ID,
757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ the DOM element must support .value to get the content.
758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - data-f-preview-to: the DOM element id of the target "previewer"
760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ element, WITH a leading '#', or the name of a method (see below).
761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - data-f-preview-via: the name of a method (see below).
763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ - OPTIONAL data-f-preview-as-text: a numeric value. Explained below.
765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Each element gets a click handler added to it which does the
767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ following:
768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 1) Reads the content from its data-f-preview-from element or, if
770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ that property refers to a method, calls the method without
771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ arguments and uses its result as the content.
772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 2) Passes the content to
774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ methodNamespace[f-data-post-via](content,callback). f-data-post-via
775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ is responsible for submitting the preview HTTP request, including
776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ any parameters the request might require. When the response
777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ arrives, it must pass the content of the response to its 2nd
778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ argument, an auto-generated callback installed by this mechanism
779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ which...
780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 3) Assigns the response text to the data-f-preview-to element or
782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ passes it to the function
783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ methodNamespace[f-data-preview-to](content), as appropriate. If
784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ data-f-preview-to is a DOM element and data-f-preview-as-text is
785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ '0' (the default) then the target elements contents are replaced
786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ with the given content as HTML, else the content is assigned to
787 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ the target's textContent property. (Note that this routine uses
788 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ DOMParser, rather than assignment to innerHTML, to apply
789 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ HTML-format content.)
790 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ The methodNamespace (2nd argument) defaults to fossil.page, and
792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ any method-name data properties, e.g. data-f-preview-via and
793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ potentially data-f-preview-from/to, must be a single method name,
794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ not a property-access-style string. e.g. "myPreview" is legal but
795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "foo.myPreview" is not (unless, of course, the method is actually
796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ named "foo.myPreview" (which is legal but would be
797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ unconventional)).
798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ An example...
800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ First an input button:
802 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
803 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ <button id='test-preview-connector'
804 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ data-f-preview-from='#fileedit-content-editor' // elem ID or method name
805 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ data-f-preview-via='myPreview' // method name
806 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ data-f-preview-to='#fileedit-tab-preview-wrapper' // elem ID or method name
807 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ >Preview update</button>
808 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
809 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ And a sample data-f-preview-via method:
810 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
811 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil.page.myPreview = function(content,callback){
812 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const fd = new FormData();
813 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fd.append('foo', ...);
814 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil.fetch('preview_forumpost',{
815 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ payload: fd,
816 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ onload: callback,
817 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ onerror: (e)=>{ // only if app-specific handling is needed
818 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil.fetch.onerror(e); // default impl
819 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ... any app-specific error reporting ...
820 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
821 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ });
822 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
823 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
824 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Then connect the parts with:
825 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
826 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil.connectPagePreviewers('#test-preview-connector');
827 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Note that the data-f-preview-from, data-f-preview-via, and
829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ data-f-preview-to selector are not resolved until the button is
830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ actually clicked, so they need not exist in the DOM at the
831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ instant when the connection is set up, so long as they can be
832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ resolved when the preview-refreshing element is clicked.
833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Maintenance reminder: this method is not strictly part of
835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil.dom, but is in its file because it needs access to
836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ dom.parseHtml() to avoid an innerHTML assignment and all code
837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ which uses this routine also needs fossil.dom.
838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ F.connectPagePreviewers = function f(selector,methodNamespace){
840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if('string'===typeof selector){
841 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ selector = document.querySelectorAll(selector);
842 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if(!selector.forEach){
843 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ selector = [selector];
844 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
845 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(!methodNamespace){
846 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ methodNamespace = F.page;
847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
848 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ selector.forEach(function(e){
849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ e.addEventListener(
850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'click', function(r){
851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const eTo = '#'===e.dataset.fPreviewTo[0]
852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ? document.querySelector(e.dataset.fPreviewTo)
853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ : methodNamespace[e.dataset.fPreviewTo],
854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ eFrom = '#'===e.dataset.fPreviewFrom[0]
855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ? document.querySelector(e.dataset.fPreviewFrom)
856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ : methodNamespace[e.dataset.fPreviewFrom],
857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ asText = +(e.dataset.fPreviewAsText || 0);
858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ eTo.textContent = "Fetching preview...";
859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ methodNamespace[e.dataset.fPreviewVia](
860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ (eFrom instanceof Function ? eFrom() : eFrom.value),
861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ function(r){
862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(eTo instanceof Function) eTo(r||'');
863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ else if(!r){
864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ dom.clearElement(eTo);
865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if(asText){
866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ eTo.textContent = r;
867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ dom.parseHtml(dom.clearElement(eTo), r);
869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }, false
873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ });
875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return this;
876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }/*F.connectPagePreviewers()*/;
877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
702 878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return F.dom = dom;
703 879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
})(window.fossil);
704 880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!