@@ -2,11 +2,12 @@
2 2 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
3 3 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
JS counterpart of info.c:output_text_with_line_numbers()
4 4 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
which ties an event handler to the line numbers to allow
5 5 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
selection of individual lines or ranges.
6 6 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
7 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Requires: fossil.bootstrap, fossil.dom, fossil.tooltip
7 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Requires: fossil.bootstrap, fossil.dom, fossil.tooltip,
8 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil.copybutton
8 9 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
9 10 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
var tbl = arg || document.querySelectorAll('table.numbered-lines');
10 11 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!tbl) return /* no matching elements */;
11 12 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
else if(!arg){
12 13 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(tbl.length>1){ /* multiple query results: recurse */
@@ -17,11 +18,11 @@
17 18 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
18 19 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
19 20 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const F = window.fossil, D = F.dom;
20 21 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const tdLn = tbl.querySelector('td.line-numbers');
21 22 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const lineState = {
22 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- urlArgs: (window.location.search||'').replace(/&?\bln=[^&]*/,''),
23 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ urlArgs: (window.location.search||'?').replace(/&?\bln=[^&]*/,''),
23 24 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
start: 0, end: 0
24 25 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
25 26 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
26 27 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const lineTip = new fossil.TooltipWidget({
27 28 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
refresh: function(){
@@ -41,20 +42,16 @@
41 42 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
42 43 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
43 44 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.append(link, "No lines selected.");
44 45 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
45 46 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
},
46 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- adjustX: function(x){
47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return x + 20;
48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- },
49 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- adjustY: function(y){
50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return y - this.e.clientHeight/2;
51 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- },
47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ adjustX: (x)=>x,
48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ adjustY: (y)=>y,
52 49 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
init: function(){
53 50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const e = this.e;
54 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const btnCopy = D.addClass(D.span(), 'copy-button');
55 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const link = D.attr(D.span(), 'id', 'fossil-ln-link');
51 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const btnCopy = D.span(),
52 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ link = D.span();
56 53 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.state = {link};
57 54 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
F.copyButton(btnCopy,{
58 55 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
copyFromElement: link,
59 56 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
extractText: ()=>link.dataset.url
60 57 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
});
@@ -97,11 +94,12 @@
97 94 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
98 95 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
99 96 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
tdLn.querySelectorAll('span.selected-line').forEach(
100 97 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
(e)=>D.removeClass(e, 'selected-line','start','end'));
101 98 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(f.mode>0){
102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- lineTip.show(ev.clientX, ev.clientY);
99 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const rect = ev.target.getBoundingClientRect();
100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ lineTip.show(rect.right+3, rect.top-4);
103 101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const spans = tdLn.querySelectorAll('span');
104 102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(spans.length>=lineState.start){
105 103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
let i = lineState.start, end = lineState.end || lineState.start, span = spans[i-1];
106 104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for( ; i<=end && span; span = spans[i++] ){
107 105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
span.classList.add('selected-line');
108 106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!