@prose-reader/enhancer-search 1.20.0 → 1.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,196 +1,189 @@
1
1
  /* eslint-disable */
2
- var addSorting = (function() {
3
- 'use strict';
4
- var cols,
5
- currentSort = {
6
- index: 0,
7
- desc: false
8
- };
9
-
10
- // returns the summary table element
11
- function getTable() {
12
- return document.querySelector('.coverage-summary');
13
- }
14
- // returns the thead element of the summary table
15
- function getTableHeader() {
16
- return getTable().querySelector('thead tr');
17
- }
18
- // returns the tbody element of the summary table
19
- function getTableBody() {
20
- return getTable().querySelector('tbody');
21
- }
22
- // returns the th element for nth column
23
- function getNthColumn(n) {
24
- return getTableHeader().querySelectorAll('th')[n];
2
+ var addSorting = (function () {
3
+ "use strict"
4
+ var cols,
5
+ currentSort = {
6
+ index: 0,
7
+ desc: false,
25
8
  }
26
9
 
27
- function onFilterInput() {
28
- const searchValue = document.getElementById('fileSearch').value;
29
- const rows = document.getElementsByTagName('tbody')[0].children;
30
- for (let i = 0; i < rows.length; i++) {
31
- const row = rows[i];
32
- if (
33
- row.textContent
34
- .toLowerCase()
35
- .includes(searchValue.toLowerCase())
36
- ) {
37
- row.style.display = '';
38
- } else {
39
- row.style.display = 'none';
40
- }
41
- }
42
- }
10
+ // returns the summary table element
11
+ function getTable() {
12
+ return document.querySelector(".coverage-summary")
13
+ }
14
+ // returns the thead element of the summary table
15
+ function getTableHeader() {
16
+ return getTable().querySelector("thead tr")
17
+ }
18
+ // returns the tbody element of the summary table
19
+ function getTableBody() {
20
+ return getTable().querySelector("tbody")
21
+ }
22
+ // returns the th element for nth column
23
+ function getNthColumn(n) {
24
+ return getTableHeader().querySelectorAll("th")[n]
25
+ }
43
26
 
44
- // loads the search box
45
- function addSearchBox() {
46
- var template = document.getElementById('filterTemplate');
47
- var templateClone = template.content.cloneNode(true);
48
- templateClone.getElementById('fileSearch').oninput = onFilterInput;
49
- template.parentElement.appendChild(templateClone);
27
+ function onFilterInput() {
28
+ const searchValue = document.getElementById("fileSearch").value
29
+ const rows = document.getElementsByTagName("tbody")[0].children
30
+ for (let i = 0; i < rows.length; i++) {
31
+ const row = rows[i]
32
+ if (row.textContent.toLowerCase().includes(searchValue.toLowerCase())) {
33
+ row.style.display = ""
34
+ } else {
35
+ row.style.display = "none"
36
+ }
50
37
  }
38
+ }
51
39
 
52
- // loads all columns
53
- function loadColumns() {
54
- var colNodes = getTableHeader().querySelectorAll('th'),
55
- colNode,
56
- cols = [],
57
- col,
58
- i;
40
+ // loads the search box
41
+ function addSearchBox() {
42
+ var template = document.getElementById("filterTemplate")
43
+ var templateClone = template.content.cloneNode(true)
44
+ templateClone.getElementById("fileSearch").oninput = onFilterInput
45
+ template.parentElement.appendChild(templateClone)
46
+ }
59
47
 
60
- for (i = 0; i < colNodes.length; i += 1) {
61
- colNode = colNodes[i];
62
- col = {
63
- key: colNode.getAttribute('data-col'),
64
- sortable: !colNode.getAttribute('data-nosort'),
65
- type: colNode.getAttribute('data-type') || 'string'
66
- };
67
- cols.push(col);
68
- if (col.sortable) {
69
- col.defaultDescSort = col.type === 'number';
70
- colNode.innerHTML =
71
- colNode.innerHTML + '<span class="sorter"></span>';
72
- }
73
- }
74
- return cols;
48
+ // loads all columns
49
+ function loadColumns() {
50
+ var colNodes = getTableHeader().querySelectorAll("th"),
51
+ colNode,
52
+ cols = [],
53
+ col,
54
+ i
55
+
56
+ for (i = 0; i < colNodes.length; i += 1) {
57
+ colNode = colNodes[i]
58
+ col = {
59
+ key: colNode.getAttribute("data-col"),
60
+ sortable: !colNode.getAttribute("data-nosort"),
61
+ type: colNode.getAttribute("data-type") || "string",
62
+ }
63
+ cols.push(col)
64
+ if (col.sortable) {
65
+ col.defaultDescSort = col.type === "number"
66
+ colNode.innerHTML = colNode.innerHTML + '<span class="sorter"></span>'
67
+ }
75
68
  }
76
- // attaches a data attribute to every tr element with an object
77
- // of data values keyed by column name
78
- function loadRowData(tableRow) {
79
- var tableCols = tableRow.querySelectorAll('td'),
80
- colNode,
81
- col,
82
- data = {},
83
- i,
84
- val;
85
- for (i = 0; i < tableCols.length; i += 1) {
86
- colNode = tableCols[i];
87
- col = cols[i];
88
- val = colNode.getAttribute('data-value');
89
- if (col.type === 'number') {
90
- val = Number(val);
91
- }
92
- data[col.key] = val;
93
- }
94
- return data;
69
+ return cols
70
+ }
71
+ // attaches a data attribute to every tr element with an object
72
+ // of data values keyed by column name
73
+ function loadRowData(tableRow) {
74
+ var tableCols = tableRow.querySelectorAll("td"),
75
+ colNode,
76
+ col,
77
+ data = {},
78
+ i,
79
+ val
80
+ for (i = 0; i < tableCols.length; i += 1) {
81
+ colNode = tableCols[i]
82
+ col = cols[i]
83
+ val = colNode.getAttribute("data-value")
84
+ if (col.type === "number") {
85
+ val = Number(val)
86
+ }
87
+ data[col.key] = val
95
88
  }
96
- // loads all row data
97
- function loadData() {
98
- var rows = getTableBody().querySelectorAll('tr'),
99
- i;
89
+ return data
90
+ }
91
+ // loads all row data
92
+ function loadData() {
93
+ var rows = getTableBody().querySelectorAll("tr"),
94
+ i
100
95
 
101
- for (i = 0; i < rows.length; i += 1) {
102
- rows[i].data = loadRowData(rows[i]);
103
- }
96
+ for (i = 0; i < rows.length; i += 1) {
97
+ rows[i].data = loadRowData(rows[i])
104
98
  }
105
- // sorts the table using the data for the ith column
106
- function sortByIndex(index, desc) {
107
- var key = cols[index].key,
108
- sorter = function(a, b) {
109
- a = a.data[key];
110
- b = b.data[key];
111
- return a < b ? -1 : a > b ? 1 : 0;
112
- },
113
- finalSorter = sorter,
114
- tableBody = document.querySelector('.coverage-summary tbody'),
115
- rowNodes = tableBody.querySelectorAll('tr'),
116
- rows = [],
117
- i;
99
+ }
100
+ // sorts the table using the data for the ith column
101
+ function sortByIndex(index, desc) {
102
+ var key = cols[index].key,
103
+ sorter = function (a, b) {
104
+ a = a.data[key]
105
+ b = b.data[key]
106
+ return a < b ? -1 : a > b ? 1 : 0
107
+ },
108
+ finalSorter = sorter,
109
+ tableBody = document.querySelector(".coverage-summary tbody"),
110
+ rowNodes = tableBody.querySelectorAll("tr"),
111
+ rows = [],
112
+ i
118
113
 
119
- if (desc) {
120
- finalSorter = function(a, b) {
121
- return -1 * sorter(a, b);
122
- };
123
- }
114
+ if (desc) {
115
+ finalSorter = function (a, b) {
116
+ return -1 * sorter(a, b)
117
+ }
118
+ }
124
119
 
125
- for (i = 0; i < rowNodes.length; i += 1) {
126
- rows.push(rowNodes[i]);
127
- tableBody.removeChild(rowNodes[i]);
128
- }
120
+ for (i = 0; i < rowNodes.length; i += 1) {
121
+ rows.push(rowNodes[i])
122
+ tableBody.removeChild(rowNodes[i])
123
+ }
129
124
 
130
- rows.sort(finalSorter);
125
+ rows.sort(finalSorter)
131
126
 
132
- for (i = 0; i < rows.length; i += 1) {
133
- tableBody.appendChild(rows[i]);
134
- }
127
+ for (i = 0; i < rows.length; i += 1) {
128
+ tableBody.appendChild(rows[i])
135
129
  }
136
- // removes sort indicators for current column being sorted
137
- function removeSortIndicators() {
138
- var col = getNthColumn(currentSort.index),
139
- cls = col.className;
130
+ }
131
+ // removes sort indicators for current column being sorted
132
+ function removeSortIndicators() {
133
+ var col = getNthColumn(currentSort.index),
134
+ cls = col.className
140
135
 
141
- cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, '');
142
- col.className = cls;
143
- }
144
- // adds sort indicators for current column being sorted
145
- function addSortIndicators() {
146
- getNthColumn(currentSort.index).className += currentSort.desc
147
- ? ' sorted-desc'
148
- : ' sorted';
149
- }
150
- // adds event listeners for all sorter widgets
151
- function enableUI() {
152
- var i,
153
- el,
154
- ithSorter = function ithSorter(i) {
155
- var col = cols[i];
136
+ cls = cls.replace(/ sorted$/, "").replace(/ sorted-desc$/, "")
137
+ col.className = cls
138
+ }
139
+ // adds sort indicators for current column being sorted
140
+ function addSortIndicators() {
141
+ getNthColumn(currentSort.index).className += currentSort.desc ? " sorted-desc" : " sorted"
142
+ }
143
+ // adds event listeners for all sorter widgets
144
+ function enableUI() {
145
+ var i,
146
+ el,
147
+ ithSorter = function ithSorter(i) {
148
+ var col = cols[i]
156
149
 
157
- return function() {
158
- var desc = col.defaultDescSort;
150
+ return function () {
151
+ var desc = col.defaultDescSort
159
152
 
160
- if (currentSort.index === i) {
161
- desc = !currentSort.desc;
162
- }
163
- sortByIndex(i, desc);
164
- removeSortIndicators();
165
- currentSort.index = i;
166
- currentSort.desc = desc;
167
- addSortIndicators();
168
- };
169
- };
170
- for (i = 0; i < cols.length; i += 1) {
171
- if (cols[i].sortable) {
172
- // add the click event handler on the th so users
173
- // dont have to click on those tiny arrows
174
- el = getNthColumn(i).querySelector('.sorter').parentElement;
175
- if (el.addEventListener) {
176
- el.addEventListener('click', ithSorter(i));
177
- } else {
178
- el.attachEvent('onclick', ithSorter(i));
179
- }
180
- }
153
+ if (currentSort.index === i) {
154
+ desc = !currentSort.desc
155
+ }
156
+ sortByIndex(i, desc)
157
+ removeSortIndicators()
158
+ currentSort.index = i
159
+ currentSort.desc = desc
160
+ addSortIndicators()
181
161
  }
182
- }
183
- // adds sorting functionality to the UI
184
- return function() {
185
- if (!getTable()) {
186
- return;
162
+ }
163
+ for (i = 0; i < cols.length; i += 1) {
164
+ if (cols[i].sortable) {
165
+ // add the click event handler on the th so users
166
+ // dont have to click on those tiny arrows
167
+ el = getNthColumn(i).querySelector(".sorter").parentElement
168
+ if (el.addEventListener) {
169
+ el.addEventListener("click", ithSorter(i))
170
+ } else {
171
+ el.attachEvent("onclick", ithSorter(i))
187
172
  }
188
- cols = loadColumns();
189
- loadData();
190
- addSearchBox();
191
- addSortIndicators();
192
- enableUI();
193
- };
194
- })();
173
+ }
174
+ }
175
+ }
176
+ // adds sorting functionality to the UI
177
+ return function () {
178
+ if (!getTable()) {
179
+ return
180
+ }
181
+ cols = loadColumns()
182
+ loadData()
183
+ addSearchBox()
184
+ addSortIndicators()
185
+ enableUI()
186
+ }
187
+ })()
195
188
 
196
- window.addEventListener('load', addSorting);
189
+ window.addEventListener("load", addSorting)