From 311fe94be93c632068964d03cadcccd9304d3ec2 Mon Sep 17 00:00:00 2001 From: koalyptus Date: Tue, 27 Dec 2016 10:58:27 +0000 Subject: [PATCH] publish Docs to gh-pages (auto) branch: master SHA: c1f0d71bcbe0aa0caf5b77ae11dfa976a8406f44 range SHA: 72dbf6ba2704...c1f0d71bcbe0 build id: 186940167 build number: 522 --- docs/ast/source/event.js.json | 1576 ++-- docs/ast/source/modules/help.js.json | 6501 ++++++++++------- docs/class/src/emitter.js~Emitter.html | 2 +- ...pterEzEditTable.js~AdapterEzEditTable.html | 2 +- .../extensions/colOps/colOps.js~ColOps.html | 2 +- .../colsVisibility.js~ColsVisibility.html | 2 +- ...iltersVisibility.js~FiltersVisibility.html | 2 +- ...Sortabletable.js~AdapterSortableTable.html | 2 +- docs/class/src/feature.js~Feature.html | 2 +- .../alternateRows.js~AlternateRows.html | 2 +- .../src/modules/checkList.js~CheckList.html | 2 +- .../modules/clearButton.js~ClearButton.html | 2 +- .../src/modules/dateType.js~DateType.html | 2 +- .../src/modules/dropdown.js~Dropdown.html | 2 +- .../src/modules/gridLayout.js~GridLayout.html | 2 +- docs/class/src/modules/hash.js~Hash.html | 2 +- docs/class/src/modules/help.js~Help.html | 46 +- ...highlightKeywords.js~HighlightKeyword.html | 2 +- docs/class/src/modules/loader.js~Loader.html | 2 +- .../src/modules/noResults.js~NoResults.html | 2 +- docs/class/src/modules/paging.js~Paging.html | 2 +- .../modules/popupFilter.js~PopupFilter.html | 2 +- .../modules/rowsCounter.js~RowsCounter.html | 2 +- docs/class/src/modules/state.js~State.html | 2 +- .../src/modules/statusBar.js~StatusBar.html | 2 +- .../class/src/modules/storage.js~Storage.html | 2 +- .../class/src/tablefilter.js~TableFilter.html | 2 +- docs/dump.json | 1454 ++-- docs/file/src/array.js.html | 2 +- docs/file/src/const.js.html | 2 +- docs/file/src/cookie.js.html | 2 +- docs/file/src/dom.js.html | 2 +- docs/file/src/emitter.js.html | 2 +- docs/file/src/event.js.html | 17 +- .../advancedGrid/adapterEzEditTable.js.html | 2 +- .../advancedGrid/advancedGrid.js.html | 2 +- .../file/src/extensions/colOps/colOps.js.html | 2 +- .../colsVisibility/colsVisibility.js.html | 2 +- .../filtersVisibility.js.html | 2 +- .../sort/adapterSortabletable.js.html | 2 +- docs/file/src/extensions/sort/sort.js.html | 2 +- docs/file/src/feature.js.html | 2 +- docs/file/src/modules/alternateRows.js.html | 2 +- docs/file/src/modules/checkList.js.html | 2 +- docs/file/src/modules/clearButton.js.html | 2 +- docs/file/src/modules/dateType.js.html | 2 +- docs/file/src/modules/dropdown.js.html | 2 +- docs/file/src/modules/gridLayout.js.html | 2 +- docs/file/src/modules/hash.js.html | 2 +- docs/file/src/modules/help.js.html | 35 +- .../src/modules/highlightKeywords.js.html | 2 +- docs/file/src/modules/loader.js.html | 2 +- docs/file/src/modules/noResults.js.html | 2 +- docs/file/src/modules/paging.js.html | 2 +- docs/file/src/modules/popupFilter.js.html | 2 +- docs/file/src/modules/rowsCounter.js.html | 2 +- docs/file/src/modules/state.js.html | 2 +- docs/file/src/modules/statusBar.js.html | 2 +- docs/file/src/modules/storage.js.html | 2 +- docs/file/src/number.js.html | 2 +- docs/file/src/root.js.html | 2 +- docs/file/src/sort.js.html | 2 +- docs/file/src/string.js.html | 2 +- docs/file/src/tablefilter.js.html | 2 +- docs/file/src/types.js.html | 2 +- docs/function/index.html | 2 +- docs/identifiers.html | 2 +- docs/index.html | 2 +- docs/package.json | 2 +- docs/source.html | 84 +- docs/variable/index.html | 18 +- 71 files changed, 5741 insertions(+), 4116 deletions(-) diff --git a/docs/ast/source/event.js.json b/docs/ast/source/event.js.json index ecc858de..a0ac8956 100644 --- a/docs/ast/source/event.js.json +++ b/docs/ast/source/event.js.json @@ -1213,10 +1213,10 @@ }, "property": { "type": "Identifier", - "name": "detachEvent", + "name": "removeEventListener", "range": [ 985, - 996 + 1004 ], "loc": { "start": { @@ -1225,13 +1225,13 @@ }, "end": { "line": 37, - "column": 23 + "column": 31 } } }, "range": [ 981, - 996 + 1004 ], "loc": { "start": { @@ -1240,7 +1240,7 @@ }, "end": { "line": 37, - "column": 23 + "column": 31 } } }, @@ -1258,8 +1258,8 @@ "type": "Identifier", "name": "obj", "range": [ - 1008, - 1011 + 1016, + 1019 ], "loc": { "start": { @@ -1274,10 +1274,10 @@ }, "property": { "type": "Identifier", - "name": "detachEvent", + "name": "removeEventListener", "range": [ - 1012, - 1023 + 1020, + 1039 ], "loc": { "start": { @@ -1286,13 +1286,13 @@ }, "end": { "line": 38, - "column": 23 + "column": 31 } } }, "range": [ - 1008, - 1023 + 1016, + 1039 ], "loc": { "start": { @@ -1301,63 +1301,26 @@ }, "end": { "line": 38, - "column": 23 + "column": 31 } } }, "arguments": [ { - "type": "BinaryExpression", - "operator": "+", - "left": { - "type": "Literal", - "value": "on", - "raw": "'on'", - "range": [ - 1024, - 1028 - ], - "loc": { - "start": { - "line": 38, - "column": 24 - }, - "end": { - "line": 38, - "column": 28 - } - } - }, - "right": { - "type": "Identifier", - "name": "type", - "range": [ - 1031, - 1035 - ], - "loc": { - "start": { - "line": 38, - "column": 31 - }, - "end": { - "line": 38, - "column": 35 - } - } - }, + "type": "Identifier", + "name": "type", "range": [ - 1024, - 1035 + 1040, + 1044 ], "loc": { "start": { "line": 38, - "column": 24 + "column": 32 }, "end": { "line": 38, - "column": 35 + "column": 36 } } }, @@ -1365,24 +1328,42 @@ "type": "Identifier", "name": "func", "range": [ - 1037, - 1041 + 1046, + 1050 ], "loc": { "start": { "line": 38, - "column": 37 + "column": 38 }, "end": { "line": 38, - "column": 41 + "column": 42 + } + } + }, + { + "type": "Identifier", + "name": "capture", + "range": [ + 1052, + 1059 + ], + "loc": { + "start": { + "line": 38, + "column": 44 + }, + "end": { + "line": 38, + "column": 51 } } } ], "range": [ - 1008, - 1042 + 1016, + 1060 ], "loc": { "start": { @@ -1391,13 +1372,13 @@ }, "end": { "line": 38, - "column": 42 + "column": 52 } } }, "range": [ - 1008, - 1043 + 1016, + 1061 ], "loc": { "start": { @@ -1406,19 +1387,19 @@ }, "end": { "line": 38, - "column": 43 + "column": 53 } } } ], "range": [ - 998, - 1049 + 1006, + 1067 ], "loc": { "start": { "line": 37, - "column": 25 + "column": 33 }, "end": { "line": 39, @@ -1435,50 +1416,50 @@ "type": "Identifier", "name": "obj", "range": [ - 1063, - 1066 + 1077, + 1080 ], "loc": { "start": { - "line": 40, - "column": 13 + "line": 39, + "column": 15 }, "end": { - "line": 40, - "column": 16 + "line": 39, + "column": 18 } } }, "property": { "type": "Identifier", - "name": "removeEventListener", + "name": "detachEvent", "range": [ - 1067, - 1086 + 1081, + 1092 ], "loc": { "start": { - "line": 40, - "column": 17 + "line": 39, + "column": 19 }, "end": { - "line": 40, - "column": 36 + "line": 39, + "column": 30 } } }, "range": [ - 1063, - 1086 + 1077, + 1092 ], "loc": { "start": { - "line": 40, - "column": 13 + "line": 39, + "column": 15 }, "end": { - "line": 40, - "column": 36 + "line": 39, + "column": 30 } } }, @@ -1496,69 +1477,106 @@ "type": "Identifier", "name": "obj", "range": [ - 1098, - 1101 + 1104, + 1107 ], "loc": { "start": { - "line": 41, + "line": 40, "column": 8 }, "end": { - "line": 41, + "line": 40, "column": 11 } } }, "property": { "type": "Identifier", - "name": "removeEventListener", + "name": "detachEvent", "range": [ - 1102, - 1121 + 1108, + 1119 ], "loc": { "start": { - "line": 41, + "line": 40, "column": 12 }, "end": { - "line": 41, - "column": 31 + "line": 40, + "column": 23 } } }, "range": [ - 1098, - 1121 + 1104, + 1119 ], "loc": { "start": { - "line": 41, + "line": 40, "column": 8 }, "end": { - "line": 41, - "column": 31 + "line": 40, + "column": 23 } } }, "arguments": [ { - "type": "Identifier", - "name": "type", + "type": "BinaryExpression", + "operator": "+", + "left": { + "type": "Literal", + "value": "on", + "raw": "'on'", + "range": [ + 1120, + 1124 + ], + "loc": { + "start": { + "line": 40, + "column": 24 + }, + "end": { + "line": 40, + "column": 28 + } + } + }, + "right": { + "type": "Identifier", + "name": "type", + "range": [ + 1127, + 1131 + ], + "loc": { + "start": { + "line": 40, + "column": 31 + }, + "end": { + "line": 40, + "column": 35 + } + } + }, "range": [ - 1122, - 1126 + 1120, + 1131 ], "loc": { "start": { - "line": 41, - "column": 32 + "line": 40, + "column": 24 }, "end": { - "line": 41, - "column": 36 + "line": 40, + "column": 35 } } }, @@ -1566,81 +1584,63 @@ "type": "Identifier", "name": "func", "range": [ - 1128, - 1132 + 1133, + 1137 ], "loc": { "start": { - "line": 41, - "column": 38 + "line": 40, + "column": 37 }, "end": { - "line": 41, - "column": 42 - } - } - }, - { - "type": "Identifier", - "name": "capture", - "range": [ - 1134, - 1141 - ], - "loc": { - "start": { - "line": 41, - "column": 44 - }, - "end": { - "line": 41, - "column": 51 + "line": 40, + "column": 41 } } } ], "range": [ - 1098, - 1142 + 1104, + 1138 ], "loc": { "start": { - "line": 41, + "line": 40, "column": 8 }, "end": { - "line": 41, - "column": 52 + "line": 40, + "column": 42 } } }, "range": [ - 1098, - 1143 + 1104, + 1139 ], "loc": { "start": { - "line": 41, + "line": 40, "column": 8 }, "end": { - "line": 41, - "column": 53 + "line": 40, + "column": 43 } } } ], "range": [ - 1088, - 1149 + 1094, + 1145 ], "loc": { "start": { - "line": 40, - "column": 38 + "line": 39, + "column": 32 }, "end": { - "line": 42, + "line": 41, "column": 5 } } @@ -1660,16 +1660,16 @@ "type": "Identifier", "name": "obj", "range": [ - 1165, - 1168 + 1161, + 1164 ], "loc": { "start": { - "line": 43, + "line": 42, "column": 8 }, "end": { - "line": 43, + "line": 42, "column": 11 } } @@ -1682,16 +1682,16 @@ "value": "on", "raw": "'on'", "range": [ - 1169, - 1173 + 1165, + 1169 ], "loc": { "start": { - "line": 43, + "line": 42, "column": 12 }, "end": { - "line": 43, + "line": 42, "column": 16 } } @@ -1700,46 +1700,46 @@ "type": "Identifier", "name": "type", "range": [ - 1176, - 1180 + 1172, + 1176 ], "loc": { "start": { - "line": 43, + "line": 42, "column": 19 }, "end": { - "line": 43, + "line": 42, "column": 23 } } }, "range": [ - 1169, - 1180 + 1165, + 1176 ], "loc": { "start": { - "line": 43, + "line": 42, "column": 12 }, "end": { - "line": 43, + "line": 42, "column": 23 } } }, "range": [ - 1165, - 1181 + 1161, + 1177 ], "loc": { "start": { - "line": 43, + "line": 42, "column": 8 }, "end": { - "line": 43, + "line": 42, "column": 24 } } @@ -1749,84 +1749,84 @@ "value": null, "raw": "null", "range": [ - 1184, - 1188 + 1180, + 1184 ], "loc": { "start": { - "line": 43, + "line": 42, "column": 27 }, "end": { - "line": 43, + "line": 42, "column": 31 } } }, "range": [ - 1165, - 1188 + 1161, + 1184 ], "loc": { "start": { - "line": 43, + "line": 42, "column": 8 }, "end": { - "line": 43, + "line": 42, "column": 31 } } }, "range": [ - 1165, - 1189 + 1161, + 1185 ], "loc": { "start": { - "line": 43, + "line": 42, "column": 8 }, "end": { - "line": 43, + "line": 42, "column": 32 } } } ], "range": [ - 1155, - 1195 + 1151, + 1191 ], "loc": { "start": { - "line": 42, + "line": 41, "column": 11 }, "end": { - "line": 44, + "line": 43, "column": 5 } } }, "range": [ - 1059, - 1195 + 1073, + 1191 ], "loc": { "start": { - "line": 40, - "column": 9 + "line": 39, + "column": 11 }, "end": { - "line": 44, + "line": 43, "column": 5 } } }, "range": [ 977, - 1195 + 1191 ], "loc": { "start": { @@ -1834,7 +1834,7 @@ "column": 4 }, "end": { - "line": 44, + "line": 43, "column": 5 } } @@ -1842,7 +1842,7 @@ ], "range": [ 971, - 1197 + 1193 ], "loc": { "start": { @@ -1850,7 +1850,7 @@ "column": 55 }, "end": { - "line": 45, + "line": 44, "column": 1 } } @@ -1859,7 +1859,7 @@ "expression": false, "range": [ 941, - 1197 + 1193 ], "loc": { "start": { @@ -1867,14 +1867,14 @@ "column": 25 }, "end": { - "line": 45, + "line": 44, "column": 1 } } }, "range": [ 929, - 1197 + 1193 ], "loc": { "start": { @@ -1882,7 +1882,7 @@ "column": 13 }, "end": { - "line": 45, + "line": 44, "column": 1 } } @@ -1891,7 +1891,7 @@ "kind": "const", "range": [ 923, - 1198 + 1194 ], "loc": { "start": { @@ -1899,7 +1899,7 @@ "column": 7 }, "end": { - "line": 45, + "line": 44, "column": 2 } }, @@ -1928,16 +1928,16 @@ "type": "Block", "value": "*\n * Prevents further propagation of the current event in the bubbling phase\n *\n * @param {Event} evt Event on the DOM\n ", "range": [ - 1200, - 1324 + 1196, + 1320 ], "loc": { "start": { - "line": 47, + "line": 46, "column": 0 }, "end": { - "line": 51, + "line": 50, "column": 3 } } @@ -1948,7 +1948,7 @@ "source": null, "range": [ 916, - 1198 + 1194 ], "loc": { "start": { @@ -1956,7 +1956,7 @@ "column": 0 }, "end": { - "line": 45, + "line": 44, "column": 2 } }, @@ -1985,16 +1985,16 @@ "type": "Block", "value": "*\n * Prevents further propagation of the current event in the bubbling phase\n *\n * @param {Event} evt Event on the DOM\n ", "range": [ - 1200, - 1324 + 1196, + 1320 ], "loc": { "start": { - "line": 47, + "line": 46, "column": 0 }, "end": { - "line": 51, + "line": 50, "column": 3 } } @@ -2012,16 +2012,16 @@ "type": "Identifier", "name": "stopEvt", "range": [ - 1338, - 1345 + 1334, + 1341 ], "loc": { "start": { - "line": 52, + "line": 51, "column": 13 }, "end": { - "line": 52, + "line": 51, "column": 20 } } @@ -2034,17 +2034,17 @@ "type": "Identifier", "name": "evt", "range": [ - 1348, - 1351 + 1345, + 1348 ], "loc": { "start": { - "line": 52, - "column": 23 + "line": 51, + "column": 24 }, "end": { - "line": 52, - "column": 26 + "line": 51, + "column": 27 } } } @@ -2061,32 +2061,32 @@ "type": "Identifier", "name": "evt", "range": [ - 1365, - 1368 + 1364, + 1367 ], "loc": { "start": { - "line": 53, + "line": 52, "column": 9 }, "end": { - "line": 53, + "line": 52, "column": 12 } } }, "prefix": true, "range": [ - 1364, - 1368 + 1363, + 1367 ], "loc": { "start": { - "line": 53, + "line": 52, "column": 8 }, "end": { - "line": 53, + "line": 52, "column": 12 } } @@ -2103,16 +2103,16 @@ "type": "Identifier", "name": "evt", "range": [ - 1380, - 1383 + 1379, + 1382 ], "loc": { "start": { - "line": 54, + "line": 53, "column": 8 }, "end": { - "line": 54, + "line": 53, "column": 11 } } @@ -2124,16 +2124,16 @@ "type": "Identifier", "name": "root", "range": [ - 1386, - 1390 + 1385, + 1389 ], "loc": { "start": { - "line": 54, + "line": 53, "column": 14 }, "end": { - "line": 54, + "line": 53, "column": 18 } } @@ -2142,93 +2142,93 @@ "type": "Identifier", "name": "event", "range": [ - 1391, - 1396 + 1390, + 1395 ], "loc": { "start": { - "line": 54, + "line": 53, "column": 19 }, "end": { - "line": 54, + "line": 53, "column": 24 } } }, "range": [ - 1386, - 1396 + 1385, + 1395 ], "loc": { "start": { - "line": 54, + "line": 53, "column": 14 }, "end": { - "line": 54, + "line": 53, "column": 24 } } }, "range": [ - 1380, - 1396 + 1379, + 1395 ], "loc": { "start": { - "line": 54, + "line": 53, "column": 8 }, "end": { - "line": 54, + "line": 53, "column": 24 } } }, "range": [ - 1380, - 1397 + 1379, + 1396 ], "loc": { "start": { - "line": 54, + "line": 53, "column": 8 }, "end": { - "line": 54, + "line": 53, "column": 25 } } } ], "range": [ - 1370, - 1403 + 1369, + 1402 ], "loc": { "start": { - "line": 53, + "line": 52, "column": 14 }, "end": { - "line": 55, + "line": 54, "column": 5 } } }, "alternate": null, "range": [ - 1360, - 1403 + 1359, + 1402 ], "loc": { "start": { - "line": 53, + "line": 52, "column": 4 }, "end": { - "line": 55, + "line": 54, "column": 5 } } @@ -2242,16 +2242,16 @@ "type": "Identifier", "name": "evt", "range": [ - 1412, - 1415 + 1411, + 1414 ], "loc": { "start": { - "line": 56, + "line": 55, "column": 8 }, "end": { - "line": 56, + "line": 55, "column": 11 } } @@ -2260,31 +2260,31 @@ "type": "Identifier", "name": "stopPropagation", "range": [ - 1416, - 1431 + 1415, + 1430 ], "loc": { "start": { - "line": 56, + "line": 55, "column": 12 }, "end": { - "line": 56, + "line": 55, "column": 27 } } }, "range": [ - 1412, - 1431 + 1411, + 1430 ], "loc": { "start": { - "line": 56, + "line": 55, "column": 8 }, "end": { - "line": 56, + "line": 55, "column": 27 } } @@ -2303,16 +2303,16 @@ "type": "Identifier", "name": "evt", "range": [ - 1443, - 1446 + 1442, + 1445 ], "loc": { "start": { - "line": 57, + "line": 56, "column": 8 }, "end": { - "line": 57, + "line": 56, "column": 11 } } @@ -2321,78 +2321,78 @@ "type": "Identifier", "name": "stopPropagation", "range": [ - 1447, - 1462 + 1446, + 1461 ], "loc": { "start": { - "line": 57, + "line": 56, "column": 12 }, "end": { - "line": 57, + "line": 56, "column": 27 } } }, "range": [ - 1443, - 1462 + 1442, + 1461 ], "loc": { "start": { - "line": 57, + "line": 56, "column": 8 }, "end": { - "line": 57, + "line": 56, "column": 27 } } }, "arguments": [], "range": [ - 1443, - 1464 + 1442, + 1463 ], "loc": { "start": { - "line": 57, + "line": 56, "column": 8 }, "end": { - "line": 57, + "line": 56, "column": 29 } } }, "range": [ - 1443, - 1465 + 1442, + 1464 ], "loc": { "start": { - "line": 57, + "line": 56, "column": 8 }, "end": { - "line": 57, + "line": 56, "column": 30 } } } ], "range": [ - 1433, - 1471 + 1432, + 1470 ], "loc": { "start": { - "line": 56, + "line": 55, "column": 29 }, "end": { - "line": 58, + "line": 57, "column": 5 } } @@ -2412,16 +2412,16 @@ "type": "Identifier", "name": "evt", "range": [ - 1487, - 1490 + 1486, + 1489 ], "loc": { "start": { - "line": 59, + "line": 58, "column": 8 }, "end": { - "line": 59, + "line": 58, "column": 11 } } @@ -2430,31 +2430,31 @@ "type": "Identifier", "name": "cancelBubble", "range": [ - 1491, - 1503 + 1490, + 1502 ], "loc": { "start": { - "line": 59, + "line": 58, "column": 12 }, "end": { - "line": 59, + "line": 58, "column": 24 } } }, "range": [ - 1487, - 1503 + 1486, + 1502 ], "loc": { "start": { - "line": 59, + "line": 58, "column": 8 }, "end": { - "line": 59, + "line": 58, "column": 24 } } @@ -2464,93 +2464,93 @@ "value": true, "raw": "true", "range": [ - 1506, - 1510 + 1505, + 1509 ], "loc": { "start": { - "line": 59, + "line": 58, "column": 27 }, "end": { - "line": 59, + "line": 58, "column": 31 } } }, "range": [ - 1487, - 1510 + 1486, + 1509 ], "loc": { "start": { - "line": 59, + "line": 58, "column": 8 }, "end": { - "line": 59, + "line": 58, "column": 31 } } }, "range": [ - 1487, - 1511 + 1486, + 1510 ], "loc": { "start": { - "line": 59, + "line": 58, "column": 8 }, "end": { - "line": 59, + "line": 58, "column": 32 } } } ], "range": [ - 1477, - 1517 + 1476, + 1516 ], "loc": { "start": { - "line": 58, + "line": 57, "column": 11 }, "end": { - "line": 60, + "line": 59, "column": 5 } } }, "range": [ - 1408, - 1517 + 1407, + 1516 ], "loc": { "start": { - "line": 56, + "line": 55, "column": 4 }, "end": { - "line": 60, + "line": 59, "column": 5 } } } ], "range": [ - 1354, - 1519 + 1353, + 1518 ], "loc": { "start": { - "line": 52, - "column": 29 + "line": 51, + "column": 32 }, "end": { - "line": 61, + "line": 60, "column": 1 } } @@ -2558,31 +2558,31 @@ "generator": false, "expression": false, "range": [ - 1348, - 1519 + 1344, + 1518 ], "loc": { "start": { - "line": 52, + "line": 51, "column": 23 }, "end": { - "line": 61, + "line": 60, "column": 1 } } }, "range": [ - 1338, - 1519 + 1334, + 1518 ], "loc": { "start": { - "line": 52, + "line": 51, "column": 13 }, "end": { - "line": 61, + "line": 60, "column": 1 } } @@ -2590,16 +2590,16 @@ ], "kind": "const", "range": [ - 1332, - 1520 + 1328, + 1519 ], "loc": { "start": { - "line": 52, + "line": 51, "column": 7 }, "end": { - "line": 61, + "line": 60, "column": 2 } }, @@ -2608,16 +2608,16 @@ "type": "Block", "value": "*\n * Prevents further propagation of the current event in the bubbling phase\n *\n * @param {Event} evt Event on the DOM\n ", "range": [ - 1200, - 1324 + 1196, + 1320 ], "loc": { "start": { - "line": 47, + "line": 46, "column": 0 }, "end": { - "line": 51, + "line": 50, "column": 3 } } @@ -2628,16 +2628,16 @@ "type": "Block", "value": "*\n * Cancels the event if it is cancelable, without stopping further\n * propagation of the event.\n *\n * @param {Event} evt Event on the DOM\n ", "range": [ - 1522, - 1667 + 1521, + 1666 ], "loc": { "start": { - "line": 63, + "line": 62, "column": 0 }, "end": { - "line": 68, + "line": 67, "column": 3 } } @@ -2647,16 +2647,16 @@ "specifiers": [], "source": null, "range": [ - 1325, - 1520 + 1321, + 1519 ], "loc": { "start": { - "line": 52, + "line": 51, "column": 0 }, "end": { - "line": 61, + "line": 60, "column": 2 } }, @@ -2665,16 +2665,16 @@ "type": "Block", "value": "*\n * Prevents further propagation of the current event in the bubbling phase\n *\n * @param {Event} evt Event on the DOM\n ", "range": [ - 1200, - 1324 + 1196, + 1320 ], "loc": { "start": { - "line": 47, + "line": 46, "column": 0 }, "end": { - "line": 51, + "line": 50, "column": 3 } } @@ -2685,16 +2685,16 @@ "type": "Block", "value": "*\n * Cancels the event if it is cancelable, without stopping further\n * propagation of the event.\n *\n * @param {Event} evt Event on the DOM\n ", "range": [ - 1522, - 1667 + 1521, + 1666 ], "loc": { "start": { - "line": 63, + "line": 62, "column": 0 }, "end": { - "line": 68, + "line": 67, "column": 3 } } @@ -2712,16 +2712,16 @@ "type": "Identifier", "name": "cancelEvt", "range": [ - 1681, - 1690 + 1680, + 1689 ], "loc": { "start": { - "line": 69, + "line": 68, "column": 13 }, "end": { - "line": 69, + "line": 68, "column": 22 } } @@ -2739,12 +2739,12 @@ ], "loc": { "start": { - "line": 69, - "column": 25 + "line": 68, + "column": 26 }, "end": { - "line": 69, - "column": 28 + "line": 68, + "column": 29 } } } @@ -2761,32 +2761,32 @@ "type": "Identifier", "name": "evt", "range": [ - 1711, - 1714 + 1712, + 1715 ], "loc": { "start": { - "line": 70, + "line": 69, "column": 9 }, "end": { - "line": 70, + "line": 69, "column": 12 } } }, "prefix": true, "range": [ - 1710, - 1714 + 1711, + 1715 ], "loc": { "start": { - "line": 70, + "line": 69, "column": 8 }, "end": { - "line": 70, + "line": 69, "column": 12 } } @@ -2803,16 +2803,16 @@ "type": "Identifier", "name": "evt", "range": [ - 1726, - 1729 + 1727, + 1730 ], "loc": { "start": { - "line": 71, + "line": 70, "column": 8 }, "end": { - "line": 71, + "line": 70, "column": 11 } } @@ -2824,16 +2824,16 @@ "type": "Identifier", "name": "root", "range": [ - 1732, - 1736 + 1733, + 1737 ], "loc": { "start": { - "line": 71, + "line": 70, "column": 14 }, "end": { - "line": 71, + "line": 70, "column": 18 } } @@ -2842,93 +2842,93 @@ "type": "Identifier", "name": "event", "range": [ - 1737, - 1742 + 1738, + 1743 ], "loc": { "start": { - "line": 71, + "line": 70, "column": 19 }, "end": { - "line": 71, + "line": 70, "column": 24 } } }, "range": [ - 1732, - 1742 + 1733, + 1743 ], "loc": { "start": { - "line": 71, + "line": 70, "column": 14 }, "end": { - "line": 71, + "line": 70, "column": 24 } } }, "range": [ - 1726, - 1742 + 1727, + 1743 ], "loc": { "start": { - "line": 71, + "line": 70, "column": 8 }, "end": { - "line": 71, + "line": 70, "column": 24 } } }, "range": [ - 1726, - 1743 + 1727, + 1744 ], "loc": { "start": { - "line": 71, + "line": 70, "column": 8 }, "end": { - "line": 71, + "line": 70, "column": 25 } } } ], "range": [ - 1716, - 1749 + 1717, + 1750 ], "loc": { "start": { - "line": 70, + "line": 69, "column": 14 }, "end": { - "line": 72, + "line": 71, "column": 5 } } }, "alternate": null, "range": [ - 1706, - 1749 + 1707, + 1750 ], "loc": { "start": { - "line": 70, + "line": 69, "column": 4 }, "end": { - "line": 72, + "line": 71, "column": 5 } } @@ -2942,16 +2942,16 @@ "type": "Identifier", "name": "evt", "range": [ - 1758, - 1761 + 1759, + 1762 ], "loc": { "start": { - "line": 73, + "line": 72, "column": 8 }, "end": { - "line": 73, + "line": 72, "column": 11 } } @@ -2960,31 +2960,31 @@ "type": "Identifier", "name": "preventDefault", "range": [ - 1762, - 1776 + 1763, + 1777 ], "loc": { "start": { - "line": 73, + "line": 72, "column": 12 }, "end": { - "line": 73, + "line": 72, "column": 26 } } }, "range": [ - 1758, - 1776 + 1759, + 1777 ], "loc": { "start": { - "line": 73, + "line": 72, "column": 8 }, "end": { - "line": 73, + "line": 72, "column": 26 } } @@ -3003,16 +3003,16 @@ "type": "Identifier", "name": "evt", "range": [ - 1788, - 1791 + 1789, + 1792 ], "loc": { "start": { - "line": 74, + "line": 73, "column": 8 }, "end": { - "line": 74, + "line": 73, "column": 11 } } @@ -3021,78 +3021,78 @@ "type": "Identifier", "name": "preventDefault", "range": [ - 1792, - 1806 + 1793, + 1807 ], "loc": { "start": { - "line": 74, + "line": 73, "column": 12 }, "end": { - "line": 74, + "line": 73, "column": 26 } } }, "range": [ - 1788, - 1806 + 1789, + 1807 ], "loc": { "start": { - "line": 74, + "line": 73, "column": 8 }, "end": { - "line": 74, + "line": 73, "column": 26 } } }, "arguments": [], "range": [ - 1788, - 1808 + 1789, + 1809 ], "loc": { "start": { - "line": 74, + "line": 73, "column": 8 }, "end": { - "line": 74, + "line": 73, "column": 28 } } }, "range": [ - 1788, - 1809 + 1789, + 1810 ], "loc": { "start": { - "line": 74, + "line": 73, "column": 8 }, "end": { - "line": 74, + "line": 73, "column": 29 } } } ], "range": [ - 1778, - 1815 + 1779, + 1816 ], "loc": { "start": { - "line": 73, + "line": 72, "column": 28 }, "end": { - "line": 75, + "line": 74, "column": 5 } } @@ -3112,16 +3112,16 @@ "type": "Identifier", "name": "evt", "range": [ - 1831, - 1834 + 1832, + 1835 ], "loc": { "start": { - "line": 76, + "line": 75, "column": 8 }, "end": { - "line": 76, + "line": 75, "column": 11 } } @@ -3130,31 +3130,31 @@ "type": "Identifier", "name": "returnValue", "range": [ - 1835, - 1846 + 1836, + 1847 ], "loc": { "start": { - "line": 76, + "line": 75, "column": 12 }, "end": { - "line": 76, + "line": 75, "column": 23 } } }, "range": [ - 1831, - 1846 + 1832, + 1847 ], "loc": { "start": { - "line": 76, + "line": 75, "column": 8 }, "end": { - "line": 76, + "line": 75, "column": 23 } } @@ -3164,93 +3164,93 @@ "value": false, "raw": "false", "range": [ - 1849, - 1854 + 1850, + 1855 ], "loc": { "start": { - "line": 76, + "line": 75, "column": 26 }, "end": { - "line": 76, + "line": 75, "column": 31 } } }, "range": [ - 1831, - 1854 + 1832, + 1855 ], "loc": { "start": { - "line": 76, + "line": 75, "column": 8 }, "end": { - "line": 76, + "line": 75, "column": 31 } } }, "range": [ - 1831, - 1855 + 1832, + 1856 ], "loc": { "start": { - "line": 76, + "line": 75, "column": 8 }, "end": { - "line": 76, + "line": 75, "column": 32 } } } ], "range": [ - 1821, - 1861 + 1822, + 1862 ], "loc": { "start": { - "line": 75, + "line": 74, "column": 11 }, "end": { - "line": 77, + "line": 76, "column": 5 } } }, "range": [ - 1754, - 1861 + 1755, + 1862 ], "loc": { "start": { - "line": 73, + "line": 72, "column": 4 }, "end": { - "line": 77, + "line": 76, "column": 5 } } } ], "range": [ - 1700, - 1863 + 1701, + 1864 ], "loc": { "start": { - "line": 69, - "column": 32 + "line": 68, + "column": 34 }, "end": { - "line": 78, + "line": 77, "column": 1 } } @@ -3258,31 +3258,31 @@ "generator": false, "expression": false, "range": [ - 1693, - 1863 + 1692, + 1864 ], "loc": { "start": { - "line": 69, + "line": 68, "column": 25 }, "end": { - "line": 78, + "line": 77, "column": 1 } } }, "range": [ - 1681, - 1863 + 1680, + 1864 ], "loc": { "start": { - "line": 69, + "line": 68, "column": 13 }, "end": { - "line": 78, + "line": 77, "column": 1 } } @@ -3290,16 +3290,16 @@ ], "kind": "const", "range": [ - 1675, - 1864 + 1674, + 1865 ], "loc": { "start": { - "line": 69, + "line": 68, "column": 7 }, "end": { - "line": 78, + "line": 77, "column": 2 } }, @@ -3308,16 +3308,16 @@ "type": "Block", "value": "*\n * Cancels the event if it is cancelable, without stopping further\n * propagation of the event.\n *\n * @param {Event} evt Event on the DOM\n ", "range": [ - 1522, - 1667 + 1521, + 1666 ], "loc": { "start": { - "line": 63, + "line": 62, "column": 0 }, "end": { - "line": 68, + "line": 67, "column": 3 } } @@ -3328,16 +3328,16 @@ "type": "Block", "value": "*\n * Reference to the object that dispatched the event\n *\n * @param {Event} evt Event on the DOM\n * @returns {DOMElement}\n ", "range": [ - 1866, - 1993 + 1867, + 1994 ], "loc": { "start": { - "line": 80, + "line": 79, "column": 0 }, "end": { - "line": 85, + "line": 84, "column": 3 } } @@ -3347,16 +3347,16 @@ "specifiers": [], "source": null, "range": [ - 1668, - 1864 + 1667, + 1865 ], "loc": { "start": { - "line": 69, + "line": 68, "column": 0 }, "end": { - "line": 78, + "line": 77, "column": 2 } }, @@ -3365,16 +3365,16 @@ "type": "Block", "value": "*\n * Cancels the event if it is cancelable, without stopping further\n * propagation of the event.\n *\n * @param {Event} evt Event on the DOM\n ", "range": [ - 1522, - 1667 + 1521, + 1666 ], "loc": { "start": { - "line": 63, + "line": 62, "column": 0 }, "end": { - "line": 68, + "line": 67, "column": 3 } } @@ -3385,16 +3385,16 @@ "type": "Block", "value": "*\n * Reference to the object that dispatched the event\n *\n * @param {Event} evt Event on the DOM\n * @returns {DOMElement}\n ", "range": [ - 1866, - 1993 + 1867, + 1994 ], "loc": { "start": { - "line": 80, + "line": 79, "column": 0 }, "end": { - "line": 85, + "line": 84, "column": 3 } } @@ -3412,16 +3412,16 @@ "type": "Identifier", "name": "targetEvt", "range": [ - 2007, - 2016 + 2008, + 2017 ], "loc": { "start": { - "line": 86, + "line": 85, "column": 13 }, "end": { - "line": 86, + "line": 85, "column": 22 } } @@ -3434,17 +3434,17 @@ "type": "Identifier", "name": "evt", "range": [ - 2019, - 2022 + 2021, + 2024 ], "loc": { "start": { - "line": 86, - "column": 25 + "line": 85, + "column": 26 }, "end": { - "line": 86, - "column": 28 + "line": 85, + "column": 29 } } } @@ -3461,32 +3461,32 @@ "type": "Identifier", "name": "evt", "range": [ - 2037, - 2040 + 2040, + 2043 ], "loc": { "start": { - "line": 87, + "line": 86, "column": 9 }, "end": { - "line": 87, + "line": 86, "column": 12 } } }, "prefix": true, "range": [ - 2036, - 2040 + 2039, + 2043 ], "loc": { "start": { - "line": 87, + "line": 86, "column": 8 }, "end": { - "line": 87, + "line": 86, "column": 12 } } @@ -3503,16 +3503,16 @@ "type": "Identifier", "name": "evt", "range": [ - 2052, - 2055 + 2055, + 2058 ], "loc": { "start": { - "line": 88, + "line": 87, "column": 8 }, "end": { - "line": 88, + "line": 87, "column": 11 } } @@ -3524,16 +3524,16 @@ "type": "Identifier", "name": "root", "range": [ - 2058, - 2062 + 2061, + 2065 ], "loc": { "start": { - "line": 88, + "line": 87, "column": 14 }, "end": { - "line": 88, + "line": 87, "column": 18 } } @@ -3542,93 +3542,93 @@ "type": "Identifier", "name": "event", "range": [ - 2063, - 2068 + 2066, + 2071 ], "loc": { "start": { - "line": 88, + "line": 87, "column": 19 }, "end": { - "line": 88, + "line": 87, "column": 24 } } }, "range": [ - 2058, - 2068 + 2061, + 2071 ], "loc": { "start": { - "line": 88, + "line": 87, "column": 14 }, "end": { - "line": 88, + "line": 87, "column": 24 } } }, "range": [ - 2052, - 2068 + 2055, + 2071 ], "loc": { "start": { - "line": 88, + "line": 87, "column": 8 }, "end": { - "line": 88, + "line": 87, "column": 24 } } }, "range": [ - 2052, - 2069 + 2055, + 2072 ], "loc": { "start": { - "line": 88, + "line": 87, "column": 8 }, "end": { - "line": 88, + "line": 87, "column": 25 } } } ], "range": [ - 2042, - 2075 + 2045, + 2078 ], "loc": { "start": { - "line": 87, + "line": 86, "column": 14 }, "end": { - "line": 89, + "line": 88, "column": 5 } } }, "alternate": null, "range": [ - 2032, - 2075 + 2035, + 2078 ], "loc": { "start": { - "line": 87, + "line": 86, "column": 4 }, "end": { - "line": 89, + "line": 88, "column": 5 } } @@ -3645,16 +3645,16 @@ "type": "Identifier", "name": "evt", "range": [ - 2087, - 2090 + 2090, + 2093 ], "loc": { "start": { - "line": 90, + "line": 89, "column": 11 }, "end": { - "line": 90, + "line": 89, "column": 14 } } @@ -3663,31 +3663,31 @@ "type": "Identifier", "name": "target", "range": [ - 2091, - 2097 + 2094, + 2100 ], "loc": { "start": { - "line": 90, + "line": 89, "column": 15 }, "end": { - "line": 90, + "line": 89, "column": 21 } } }, "range": [ - 2087, - 2097 + 2090, + 2100 ], "loc": { "start": { - "line": 90, + "line": 89, "column": 11 }, "end": { - "line": 90, + "line": 89, "column": 21 } } @@ -3699,16 +3699,16 @@ "type": "Identifier", "name": "evt", "range": [ - 2101, - 2104 + 2104, + 2107 ], "loc": { "start": { - "line": 90, + "line": 89, "column": 25 }, "end": { - "line": 90, + "line": 89, "column": 28 } } @@ -3717,77 +3717,77 @@ "type": "Identifier", "name": "srcElement", "range": [ - 2105, - 2115 + 2108, + 2118 ], "loc": { "start": { - "line": 90, + "line": 89, "column": 29 }, "end": { - "line": 90, + "line": 89, "column": 39 } } }, "range": [ - 2101, - 2115 + 2104, + 2118 ], "loc": { "start": { - "line": 90, + "line": 89, "column": 25 }, "end": { - "line": 90, + "line": 89, "column": 39 } } }, "range": [ - 2087, - 2115 + 2090, + 2118 ], "loc": { "start": { - "line": 90, + "line": 89, "column": 11 }, "end": { - "line": 90, + "line": 89, "column": 39 } } }, "range": [ - 2080, - 2116 + 2083, + 2119 ], "loc": { "start": { - "line": 90, + "line": 89, "column": 4 }, "end": { - "line": 90, + "line": 89, "column": 40 } } } ], "range": [ - 2026, - 2118 + 2029, + 2121 ], "loc": { "start": { - "line": 86, - "column": 32 + "line": 85, + "column": 34 }, "end": { - "line": 91, + "line": 90, "column": 1 } } @@ -3795,31 +3795,31 @@ "generator": false, "expression": false, "range": [ - 2019, - 2118 + 2020, + 2121 ], "loc": { "start": { - "line": 86, + "line": 85, "column": 25 }, "end": { - "line": 91, + "line": 90, "column": 1 } } }, "range": [ - 2007, - 2118 + 2008, + 2121 ], "loc": { "start": { - "line": 86, + "line": 85, "column": 13 }, "end": { - "line": 91, + "line": 90, "column": 1 } } @@ -3827,16 +3827,16 @@ ], "kind": "const", "range": [ - 2001, - 2119 + 2002, + 2122 ], "loc": { "start": { - "line": 86, + "line": 85, "column": 7 }, "end": { - "line": 91, + "line": 90, "column": 2 } }, @@ -3845,16 +3845,16 @@ "type": "Block", "value": "*\n * Reference to the object that dispatched the event\n *\n * @param {Event} evt Event on the DOM\n * @returns {DOMElement}\n ", "range": [ - 1866, - 1993 + 1867, + 1994 ], "loc": { "start": { - "line": 80, + "line": 79, "column": 0 }, "end": { - "line": 85, + "line": 84, "column": 3 } } @@ -3865,16 +3865,16 @@ "type": "Block", "value": "*\n * Returns the Unicode value of pressed key\n *\n * @param {Event} evt Event on the DOM\n * @returns {Number}\n ", "range": [ - 2121, - 2235 + 2124, + 2238 ], "loc": { "start": { - "line": 93, + "line": 92, "column": 0 }, "end": { - "line": 98, + "line": 97, "column": 3 } } @@ -3884,16 +3884,16 @@ "specifiers": [], "source": null, "range": [ - 1994, - 2119 + 1995, + 2122 ], "loc": { "start": { - "line": 86, + "line": 85, "column": 0 }, "end": { - "line": 91, + "line": 90, "column": 2 } }, @@ -3902,16 +3902,16 @@ "type": "Block", "value": "*\n * Reference to the object that dispatched the event\n *\n * @param {Event} evt Event on the DOM\n * @returns {DOMElement}\n ", "range": [ - 1866, - 1993 + 1867, + 1994 ], "loc": { "start": { - "line": 80, + "line": 79, "column": 0 }, "end": { - "line": 85, + "line": 84, "column": 3 } } @@ -3922,16 +3922,16 @@ "type": "Block", "value": "*\n * Returns the Unicode value of pressed key\n *\n * @param {Event} evt Event on the DOM\n * @returns {Number}\n ", "range": [ - 2121, - 2235 + 2124, + 2238 ], "loc": { "start": { - "line": 93, + "line": 92, "column": 0 }, "end": { - "line": 98, + "line": 97, "column": 3 } } @@ -3949,16 +3949,16 @@ "type": "Identifier", "name": "keyCode", "range": [ - 2249, - 2256 + 2252, + 2259 ], "loc": { "start": { - "line": 99, + "line": 98, "column": 13 }, "end": { - "line": 99, + "line": 98, "column": 20 } } @@ -3971,17 +3971,17 @@ "type": "Identifier", "name": "evt", "range": [ - 2259, - 2262 + 2263, + 2266 ], "loc": { "start": { - "line": 99, - "column": 23 + "line": 98, + "column": 24 }, "end": { - "line": 99, - "column": 26 + "line": 98, + "column": 27 } } } @@ -4000,16 +4000,16 @@ "type": "Identifier", "name": "evt", "range": [ - 2279, - 2282 + 2284, + 2287 ], "loc": { "start": { - "line": 100, + "line": 99, "column": 11 }, "end": { - "line": 100, + "line": 99, "column": 14 } } @@ -4018,31 +4018,31 @@ "type": "Identifier", "name": "charCode", "range": [ - 2283, - 2291 + 2288, + 2296 ], "loc": { "start": { - "line": 100, + "line": 99, "column": 15 }, "end": { - "line": 100, + "line": 99, "column": 23 } } }, "range": [ - 2279, - 2291 + 2284, + 2296 ], "loc": { "start": { - "line": 100, + "line": 99, "column": 11 }, "end": { - "line": 100, + "line": 99, "column": 23 } } @@ -4054,16 +4054,16 @@ "type": "Identifier", "name": "evt", "range": [ - 2294, - 2297 + 2299, + 2302 ], "loc": { "start": { - "line": 100, + "line": 99, "column": 26 }, "end": { - "line": 100, + "line": 99, "column": 29 } } @@ -4072,31 +4072,31 @@ "type": "Identifier", "name": "charCode", "range": [ - 2298, - 2306 + 2303, + 2311 ], "loc": { "start": { - "line": 100, + "line": 99, "column": 30 }, "end": { - "line": 100, + "line": 99, "column": 38 } } }, "range": [ - 2294, - 2306 + 2299, + 2311 ], "loc": { "start": { - "line": 100, + "line": 99, "column": 26 }, "end": { - "line": 100, + "line": 99, "column": 38 } } @@ -4110,16 +4110,16 @@ "type": "Identifier", "name": "evt", "range": [ - 2318, - 2321 + 2323, + 2326 ], "loc": { "start": { - "line": 101, + "line": 100, "column": 9 }, "end": { - "line": 101, + "line": 100, "column": 12 } } @@ -4128,31 +4128,31 @@ "type": "Identifier", "name": "keyCode", "range": [ - 2322, - 2329 + 2327, + 2334 ], "loc": { "start": { - "line": 101, + "line": 100, "column": 13 }, "end": { - "line": 101, + "line": 100, "column": 20 } } }, "range": [ - 2318, - 2329 + 2323, + 2334 ], "loc": { "start": { - "line": 101, + "line": 100, "column": 9 }, "end": { - "line": 101, + "line": 100, "column": 20 } } @@ -4164,16 +4164,16 @@ "type": "Identifier", "name": "evt", "range": [ - 2332, - 2335 + 2337, + 2340 ], "loc": { "start": { - "line": 101, + "line": 100, "column": 23 }, "end": { - "line": 101, + "line": 100, "column": 26 } } @@ -4182,31 +4182,31 @@ "type": "Identifier", "name": "keyCode", "range": [ - 2336, - 2343 + 2341, + 2348 ], "loc": { "start": { - "line": 101, + "line": 100, "column": 27 }, "end": { - "line": 101, + "line": 100, "column": 34 } } }, "range": [ - 2332, - 2343 + 2337, + 2348 ], "loc": { "start": { - "line": 101, + "line": 100, "column": 23 }, "end": { - "line": 101, + "line": 100, "column": 34 } } @@ -4220,16 +4220,16 @@ "type": "Identifier", "name": "evt", "range": [ - 2347, - 2350 + 2352, + 2355 ], "loc": { "start": { - "line": 101, + "line": 100, "column": 38 }, "end": { - "line": 101, + "line": 100, "column": 41 } } @@ -4238,31 +4238,31 @@ "type": "Identifier", "name": "which", "range": [ - 2351, - 2356 + 2356, + 2361 ], "loc": { "start": { - "line": 101, + "line": 100, "column": 42 }, "end": { - "line": 101, + "line": 100, "column": 47 } } }, "range": [ - 2347, - 2356 + 2352, + 2361 ], "loc": { "start": { - "line": 101, + "line": 100, "column": 38 }, "end": { - "line": 101, + "line": 100, "column": 47 } } @@ -4274,16 +4274,16 @@ "type": "Identifier", "name": "evt", "range": [ - 2359, - 2362 + 2364, + 2367 ], "loc": { "start": { - "line": 101, + "line": 100, "column": 50 }, "end": { - "line": 101, + "line": 100, "column": 53 } } @@ -4292,31 +4292,31 @@ "type": "Identifier", "name": "which", "range": [ - 2363, - 2368 + 2368, + 2373 ], "loc": { "start": { - "line": 101, + "line": 100, "column": 54 }, "end": { - "line": 101, + "line": 100, "column": 59 } } }, "range": [ - 2359, - 2368 + 2364, + 2373 ], "loc": { "start": { - "line": 101, + "line": 100, "column": 50 }, "end": { - "line": 101, + "line": 100, "column": 59 } } @@ -4326,92 +4326,92 @@ "value": 0, "raw": "0", "range": [ - 2371, - 2372 + 2376, + 2377 ], "loc": { "start": { - "line": 101, + "line": 100, "column": 62 }, "end": { - "line": 101, + "line": 100, "column": 63 } } }, "range": [ - 2347, - 2372 + 2352, + 2377 ], "loc": { "start": { - "line": 101, + "line": 100, "column": 38 }, "end": { - "line": 101, + "line": 100, "column": 63 } } }, "range": [ - 2318, - 2373 + 2323, + 2378 ], "loc": { "start": { - "line": 101, + "line": 100, "column": 9 }, "end": { - "line": 101, + "line": 100, "column": 64 } } }, "range": [ - 2279, - 2374 + 2284, + 2379 ], "loc": { "start": { - "line": 100, + "line": 99, "column": 11 }, "end": { - "line": 101, + "line": 100, "column": 65 } } }, "range": [ - 2272, - 2375 + 2277, + 2380 ], "loc": { "start": { - "line": 100, + "line": 99, "column": 4 }, "end": { - "line": 101, + "line": 100, "column": 66 } } } ], "range": [ - 2266, - 2377 + 2271, + 2382 ], "loc": { "start": { - "line": 99, - "column": 30 + "line": 98, + "column": 32 }, "end": { - "line": 102, + "line": 101, "column": 1 } } @@ -4419,31 +4419,31 @@ "generator": false, "expression": false, "range": [ - 2259, - 2377 + 2262, + 2382 ], "loc": { "start": { - "line": 99, + "line": 98, "column": 23 }, "end": { - "line": 102, + "line": 101, "column": 1 } } }, "range": [ - 2249, - 2377 + 2252, + 2382 ], "loc": { "start": { - "line": 99, + "line": 98, "column": 13 }, "end": { - "line": 102, + "line": 101, "column": 1 } } @@ -4451,16 +4451,16 @@ ], "kind": "const", "range": [ - 2243, - 2378 + 2246, + 2383 ], "loc": { "start": { - "line": 99, + "line": 98, "column": 7 }, "end": { - "line": 102, + "line": 101, "column": 2 } }, @@ -4469,16 +4469,16 @@ "type": "Block", "value": "*\n * Returns the Unicode value of pressed key\n *\n * @param {Event} evt Event on the DOM\n * @returns {Number}\n ", "range": [ - 2121, - 2235 + 2124, + 2238 ], "loc": { "start": { - "line": 93, + "line": 92, "column": 0 }, "end": { - "line": 98, + "line": 97, "column": 3 } } @@ -4489,16 +4489,16 @@ "specifiers": [], "source": null, "range": [ - 2236, - 2378 + 2239, + 2383 ], "loc": { "start": { - "line": 99, + "line": 98, "column": 0 }, "end": { - "line": 102, + "line": 101, "column": 2 } }, @@ -4507,16 +4507,16 @@ "type": "Block", "value": "*\n * Returns the Unicode value of pressed key\n *\n * @param {Event} evt Event on the DOM\n * @returns {Number}\n ", "range": [ - 2121, - 2235 + 2124, + 2238 ], "loc": { "start": { - "line": 93, + "line": 92, "column": 0 }, "end": { - "line": 98, + "line": 97, "column": 3 } } @@ -4527,7 +4527,7 @@ "sourceType": "module", "range": [ 0, - 2378 + 2383 ], "loc": { "start": { @@ -4535,7 +4535,7 @@ "column": 0 }, "end": { - "line": 102, + "line": 101, "column": 2 } }, @@ -4598,16 +4598,16 @@ "type": "Block", "value": "*\n * Prevents further propagation of the current event in the bubbling phase\n *\n * @param {Event} evt Event on the DOM\n ", "range": [ - 1200, - 1324 + 1196, + 1320 ], "loc": { "start": { - "line": 47, + "line": 46, "column": 0 }, "end": { - "line": 51, + "line": 50, "column": 3 } } @@ -4616,16 +4616,16 @@ "type": "Block", "value": "*\n * Cancels the event if it is cancelable, without stopping further\n * propagation of the event.\n *\n * @param {Event} evt Event on the DOM\n ", "range": [ - 1522, - 1667 + 1521, + 1666 ], "loc": { "start": { - "line": 63, + "line": 62, "column": 0 }, "end": { - "line": 68, + "line": 67, "column": 3 } } @@ -4634,16 +4634,16 @@ "type": "Block", "value": "*\n * Reference to the object that dispatched the event\n *\n * @param {Event} evt Event on the DOM\n * @returns {DOMElement}\n ", "range": [ - 1866, - 1993 + 1867, + 1994 ], "loc": { "start": { - "line": 80, + "line": 79, "column": 0 }, "end": { - "line": 85, + "line": 84, "column": 3 } } @@ -4652,16 +4652,16 @@ "type": "Block", "value": "*\n * Returns the Unicode value of pressed key\n *\n * @param {Event} evt Event on the DOM\n * @returns {Number}\n ", "range": [ - 2121, - 2235 + 2124, + 2238 ], "loc": { "start": { - "line": 93, + "line": 92, "column": 0 }, "end": { - "line": 98, + "line": 97, "column": 3 } } diff --git a/docs/ast/source/modules/help.js.json b/docs/ast/source/modules/help.js.json index b2a2e5f2..a2dfe0c6 100644 --- a/docs/ast/source/modules/help.js.json +++ b/docs/ast/source/modules/help.js.json @@ -397,6 +397,112 @@ "column": 14 } } + }, + { + "type": "ImportSpecifier", + "local": { + "type": "Identifier", + "name": "targetEvt", + "range": [ + 114, + 123 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 25 + } + } + }, + "imported": { + "type": "Identifier", + "name": "targetEvt", + "range": [ + 114, + 123 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 25 + } + } + }, + "range": [ + 114, + 123 + ], + "loc": { + "start": { + "line": 3, + "column": 16 + }, + "end": { + "line": 3, + "column": 25 + } + } + }, + { + "type": "ImportSpecifier", + "local": { + "type": "Identifier", + "name": "removeEvt", + "range": [ + 125, + 134 + ], + "loc": { + "start": { + "line": 3, + "column": 27 + }, + "end": { + "line": 3, + "column": 36 + } + } + }, + "imported": { + "type": "Identifier", + "name": "removeEvt", + "range": [ + 125, + 134 + ], + "loc": { + "start": { + "line": 3, + "column": 27 + }, + "end": { + "line": 3, + "column": 36 + } + } + }, + "range": [ + 125, + 134 + ], + "loc": { + "start": { + "line": 3, + "column": 27 + }, + "end": { + "line": 3, + "column": 36 + } + } } ], "source": { @@ -404,23 +510,23 @@ "value": "../event", "raw": "'../event'", "range": [ - 119, - 129 + 141, + 151 ], "loc": { "start": { "line": 3, - "column": 21 + "column": 43 }, "end": { "line": 3, - "column": 31 + "column": 53 } } }, "range": [ 98, - 130 + 152 ], "loc": { "start": { @@ -429,7 +535,7 @@ }, "end": { "line": 3, - "column": 32 + "column": 54 } } }, @@ -442,8 +548,8 @@ "type": "Identifier", "name": "NONE", "range": [ - 139, - 143 + 161, + 165 ], "loc": { "start": { @@ -460,8 +566,8 @@ "type": "Identifier", "name": "NONE", "range": [ - 139, - 143 + 161, + 165 ], "loc": { "start": { @@ -475,8 +581,8 @@ } }, "range": [ - 139, - 143 + 161, + 165 ], "loc": { "start": { @@ -495,8 +601,8 @@ "value": "../const", "raw": "'../const'", "range": [ - 150, - 160 + 172, + 182 ], "loc": { "start": { @@ -510,8 +616,8 @@ } }, "range": [ - 131, - 161 + 153, + 183 ], "loc": { "start": { @@ -524,6 +630,97 @@ } } }, + { + "type": "ImportDeclaration", + "specifiers": [ + { + "type": "ImportSpecifier", + "local": { + "type": "Identifier", + "name": "root", + "range": [ + 192, + 196 + ], + "loc": { + "start": { + "line": 5, + "column": 8 + }, + "end": { + "line": 5, + "column": 12 + } + } + }, + "imported": { + "type": "Identifier", + "name": "root", + "range": [ + 192, + 196 + ], + "loc": { + "start": { + "line": 5, + "column": 8 + }, + "end": { + "line": 5, + "column": 12 + } + } + }, + "range": [ + 192, + 196 + ], + "loc": { + "start": { + "line": 5, + "column": 8 + }, + "end": { + "line": 5, + "column": 12 + } + } + } + ], + "source": { + "type": "Literal", + "value": "../root", + "raw": "'../root'", + "range": [ + 203, + 212 + ], + "loc": { + "start": { + "line": 5, + "column": 19 + }, + "end": { + "line": 5, + "column": 28 + } + } + }, + "range": [ + 184, + 213 + ], + "loc": { + "start": { + "line": 5, + "column": 0 + }, + "end": { + "line": 5, + "column": 29 + } + } + }, { "type": "VariableDeclaration", "declarations": [ @@ -533,16 +730,16 @@ "type": "Identifier", "name": "WIKI_URL", "range": [ - 169, - 177 + 221, + 229 ], "loc": { "start": { - "line": 6, + "line": 7, "column": 6 }, "end": { - "line": 6, + "line": 7, "column": 14 } } @@ -555,16 +752,16 @@ "value": "https://github.com/koalyptus/TableFilter/wiki/", "raw": "'https://github.com/koalyptus/TableFilter/wiki/'", "range": [ - 180, - 228 + 232, + 280 ], "loc": { "start": { - "line": 6, + "line": 7, "column": 17 }, "end": { - "line": 6, + "line": 7, "column": 65 } } @@ -574,46 +771,46 @@ "value": "4.-Filter-operators", "raw": "'4.-Filter-operators'", "range": [ - 235, - 256 + 287, + 308 ], "loc": { "start": { - "line": 7, + "line": 8, "column": 4 }, "end": { - "line": 7, + "line": 8, "column": 25 } } }, "range": [ - 180, - 256 + 232, + 308 ], "loc": { "start": { - "line": 6, + "line": 7, "column": 17 }, "end": { - "line": 7, + "line": 8, "column": 25 } } }, "range": [ - 169, - 256 + 221, + 308 ], "loc": { "start": { - "line": 6, + "line": 7, "column": 6 }, "end": { - "line": 7, + "line": 8, "column": 25 } } @@ -621,16 +818,16 @@ ], "kind": "const", "range": [ - 163, - 257 + 215, + 309 ], "loc": { "start": { - "line": 6, + "line": 7, "column": 0 }, "end": { - "line": 7, + "line": 8, "column": 26 } } @@ -644,16 +841,16 @@ "type": "Identifier", "name": "WEBSITE_URL", "range": [ - 264, - 275 + 316, + 327 ], "loc": { "start": { - "line": 8, + "line": 9, "column": 6 }, "end": { - "line": 8, + "line": 9, "column": 17 } } @@ -663,31 +860,31 @@ "value": "http://koalyptus.github.io/TableFilter/", "raw": "'http://koalyptus.github.io/TableFilter/'", "range": [ - 278, - 319 + 330, + 371 ], "loc": { "start": { - "line": 8, + "line": 9, "column": 20 }, "end": { - "line": 8, + "line": 9, "column": 61 } } }, "range": [ - 264, - 319 + 316, + 371 ], "loc": { "start": { - "line": 8, + "line": 9, "column": 6 }, "end": { - "line": 8, + "line": 9, "column": 61 } } @@ -695,16 +892,16 @@ ], "kind": "const", "range": [ - 258, - 320 + 310, + 372 ], "loc": { "start": { - "line": 8, + "line": 9, "column": 0 }, "end": { - "line": 8, + "line": 9, "column": 62 } }, @@ -713,16 +910,16 @@ "type": "Block", "value": "*\n * Help UI component\n ", "range": [ - 322, - 350 + 374, + 402 ], "loc": { "start": { - "line": 10, + "line": 11, "column": 0 }, "end": { - "line": 12, + "line": 13, "column": 3 } } @@ -737,16 +934,16 @@ "type": "Identifier", "name": "Help", "range": [ - 364, - 368 + 416, + 420 ], "loc": { "start": { - "line": 13, + "line": 14, "column": 13 }, "end": { - "line": 13, + "line": 14, "column": 17 } } @@ -755,16 +952,16 @@ "type": "Identifier", "name": "Feature", "range": [ - 377, - 384 + 429, + 436 ], "loc": { "start": { - "line": 13, + "line": 14, "column": 26 }, "end": { - "line": 13, + "line": 14, "column": 33 } } @@ -778,16 +975,16 @@ "type": "Identifier", "name": "constructor", "range": [ - 495, - 506 + 547, + 558 ], "loc": { "start": { - "line": 19, + "line": 20, "column": 4 }, "end": { - "line": 19, + "line": 20, "column": 15 } } @@ -800,16 +997,16 @@ "type": "Identifier", "name": "tf", "range": [ - 507, - 509 + 559, + 561 ], "loc": { "start": { - "line": 19, + "line": 20, "column": 16 }, "end": { - "line": 19, + "line": 20, "column": 18 } } @@ -825,16 +1022,16 @@ "callee": { "type": "Super", "range": [ - 521, - 526 + 573, + 578 ], "loc": { "start": { - "line": 20, + "line": 21, "column": 8 }, "end": { - "line": 20, + "line": 21, "column": 13 } } @@ -844,16 +1041,16 @@ "type": "Identifier", "name": "tf", "range": [ - 527, - 529 + 579, + 581 ], "loc": { "start": { - "line": 20, + "line": 21, "column": 14 }, "end": { - "line": 20, + "line": 21, "column": 16 } } @@ -863,47 +1060,47 @@ "value": "help", "raw": "'help'", "range": [ - 531, - 537 + 583, + 589 ], "loc": { "start": { - "line": 20, + "line": 21, "column": 18 }, "end": { - "line": 20, + "line": 21, "column": 24 } } } ], "range": [ - 521, - 538 + 573, + 590 ], "loc": { "start": { - "line": 20, + "line": 21, "column": 8 }, "end": { - "line": 20, + "line": 21, "column": 25 } } }, "range": [ - 521, - 539 + 573, + 591 ], "loc": { "start": { - "line": 20, + "line": 21, "column": 8 }, "end": { - "line": 20, + "line": 21, "column": 26 } } @@ -917,16 +1114,16 @@ "type": "Identifier", "name": "f", "range": [ - 553, - 554 + 605, + 606 ], "loc": { "start": { - "line": 22, + "line": 23, "column": 12 }, "end": { - "line": 22, + "line": 23, "column": 13 } } @@ -937,16 +1134,16 @@ "object": { "type": "ThisExpression", "range": [ - 557, - 561 + 609, + 613 ], "loc": { "start": { - "line": 22, + "line": 23, "column": 16 }, "end": { - "line": 22, + "line": 23, "column": 20 } } @@ -955,46 +1152,46 @@ "type": "Identifier", "name": "config", "range": [ - 562, - 568 + 614, + 620 ], "loc": { "start": { - "line": 22, + "line": 23, "column": 21 }, "end": { - "line": 22, + "line": 23, "column": 27 } } }, "range": [ - 557, - 568 + 609, + 620 ], "loc": { "start": { - "line": 22, + "line": 23, "column": 16 }, "end": { - "line": 22, + "line": 23, "column": 27 } } }, "range": [ - 553, - 568 + 605, + 620 ], "loc": { "start": { - "line": 22, + "line": 23, "column": 12 }, "end": { - "line": 22, + "line": 23, "column": 27 } } @@ -1002,16 +1199,16 @@ ], "kind": "let", "range": [ - 549, - 569 + 601, + 621 ], "loc": { "start": { - "line": 22, + "line": 23, "column": 8 }, "end": { - "line": 22, + "line": 23, "column": 28 } }, @@ -1020,16 +1217,16 @@ "type": "Block", "value": "*\n * ID of main custom container element\n * @type {String}\n ", "range": [ - 579, - 667 + 631, + 719 ], "loc": { "start": { - "line": 24, + "line": 25, "column": 8 }, "end": { - "line": 27, + "line": 28, "column": 11 } } @@ -1047,16 +1244,16 @@ "object": { "type": "ThisExpression", "range": [ - 676, - 680 + 728, + 732 ], "loc": { "start": { - "line": 28, + "line": 29, "column": 8 }, "end": { - "line": 28, + "line": 29, "column": 12 } } @@ -1065,31 +1262,31 @@ "type": "Identifier", "name": "tgtId", "range": [ - 681, - 686 + 733, + 738 ], "loc": { "start": { - "line": 28, + "line": 29, "column": 13 }, "end": { - "line": 28, + "line": 29, "column": 18 } } }, "range": [ - 676, - 686 + 728, + 738 ], "loc": { "start": { - "line": 28, + "line": 29, "column": 8 }, "end": { - "line": 28, + "line": 29, "column": 18 } } @@ -1104,16 +1301,16 @@ "type": "Identifier", "name": "f", "range": [ - 689, - 690 + 741, + 742 ], "loc": { "start": { - "line": 28, + "line": 29, "column": 21 }, "end": { - "line": 28, + "line": 29, "column": 22 } } @@ -1122,31 +1319,31 @@ "type": "Identifier", "name": "help_instructions_target_id", "range": [ - 691, - 718 + 743, + 770 ], "loc": { "start": { - "line": 28, + "line": 29, "column": 23 }, "end": { - "line": 28, + "line": 29, "column": 50 } } }, "range": [ - 689, - 718 + 741, + 770 ], "loc": { "start": { - "line": 28, + "line": 29, "column": 21 }, "end": { - "line": 28, + "line": 29, "column": 50 } } @@ -1156,61 +1353,61 @@ "value": null, "raw": "null", "range": [ - 722, - 726 + 774, + 778 ], "loc": { "start": { - "line": 28, + "line": 29, "column": 54 }, "end": { - "line": 28, + "line": 29, "column": 58 } } }, "range": [ - 689, - 726 + 741, + 778 ], "loc": { "start": { - "line": 28, + "line": 29, "column": 21 }, "end": { - "line": 28, + "line": 29, "column": 58 } } }, "range": [ - 676, - 726 + 728, + 778 ], "loc": { "start": { - "line": 28, + "line": 29, "column": 8 }, "end": { - "line": 28, + "line": 29, "column": 58 } } }, "range": [ - 676, - 727 + 728, + 779 ], "loc": { "start": { - "line": 28, + "line": 29, "column": 8 }, "end": { - "line": 28, + "line": 29, "column": 59 } }, @@ -1219,16 +1416,16 @@ "type": "Block", "value": "*\n * ID of main custom container element\n * @type {String}\n ", "range": [ - 579, - 667 + 631, + 719 ], "loc": { "start": { - "line": 24, + "line": 25, "column": 8 }, "end": { - "line": 27, + "line": 28, "column": 11 } } @@ -1239,16 +1436,16 @@ "type": "Block", "value": "*\n * ID of custom container element for instructions\n * @type {String}\n ", "range": [ - 737, - 837 + 789, + 889 ], "loc": { "start": { - "line": 30, + "line": 31, "column": 8 }, "end": { - "line": 33, + "line": 34, "column": 11 } } @@ -1266,16 +1463,16 @@ "object": { "type": "ThisExpression", "range": [ - 846, - 850 + 898, + 902 ], "loc": { "start": { - "line": 34, + "line": 35, "column": 8 }, "end": { - "line": 34, + "line": 35, "column": 12 } } @@ -1284,31 +1481,31 @@ "type": "Identifier", "name": "contTgtId", "range": [ - 851, - 860 + 903, + 912 ], "loc": { "start": { - "line": 34, + "line": 35, "column": 13 }, "end": { - "line": 34, + "line": 35, "column": 22 } } }, "range": [ - 846, - 860 + 898, + 912 ], "loc": { "start": { - "line": 34, + "line": 35, "column": 8 }, "end": { - "line": 34, + "line": 35, "column": 22 } } @@ -1323,16 +1520,16 @@ "type": "Identifier", "name": "f", "range": [ - 863, - 864 + 915, + 916 ], "loc": { "start": { - "line": 34, + "line": 35, "column": 25 }, "end": { - "line": 34, + "line": 35, "column": 26 } } @@ -1341,31 +1538,31 @@ "type": "Identifier", "name": "help_instructions_container_target_id", "range": [ - 865, - 902 + 917, + 954 ], "loc": { "start": { - "line": 34, + "line": 35, "column": 27 }, "end": { - "line": 34, + "line": 35, "column": 64 } } }, "range": [ - 863, - 902 + 915, + 954 ], "loc": { "start": { - "line": 34, + "line": 35, "column": 25 }, "end": { - "line": 34, + "line": 35, "column": 64 } } @@ -1375,61 +1572,61 @@ "value": null, "raw": "null", "range": [ - 918, - 922 + 970, + 974 ], "loc": { "start": { - "line": 35, + "line": 36, "column": 12 }, "end": { - "line": 35, + "line": 36, "column": 16 } } }, "range": [ - 863, - 922 + 915, + 974 ], "loc": { "start": { - "line": 34, + "line": 35, "column": 25 }, "end": { - "line": 35, + "line": 36, "column": 16 } } }, "range": [ - 846, - 922 + 898, + 974 ], "loc": { "start": { - "line": 34, + "line": 35, "column": 8 }, "end": { - "line": 35, + "line": 36, "column": 16 } } }, "range": [ - 846, - 923 + 898, + 975 ], "loc": { "start": { - "line": 34, + "line": 35, "column": 8 }, "end": { - "line": 35, + "line": 36, "column": 17 } }, @@ -1438,16 +1635,16 @@ "type": "Block", "value": "*\n * ID of custom container element for instructions\n * @type {String}\n ", "range": [ - 737, - 837 + 789, + 889 ], "loc": { "start": { - "line": 30, + "line": 31, "column": 8 }, "end": { - "line": 33, + "line": 34, "column": 11 } } @@ -1458,16 +1655,16 @@ "type": "Block", "value": "*\n * Instructions text (accepts HTML)\n * @type {String}\n ", "range": [ - 933, - 1018 + 985, + 1070 ], "loc": { "start": { - "line": 37, + "line": 38, "column": 8 }, "end": { - "line": 40, + "line": 41, "column": 11 } } @@ -1485,16 +1682,16 @@ "object": { "type": "ThisExpression", "range": [ - 1027, - 1031 + 1079, + 1083 ], "loc": { "start": { - "line": 41, + "line": 42, "column": 8 }, "end": { - "line": 41, + "line": 42, "column": 12 } } @@ -1503,31 +1700,31 @@ "type": "Identifier", "name": "instrText", "range": [ - 1032, - 1041 + 1084, + 1093 ], "loc": { "start": { - "line": 41, + "line": 42, "column": 13 }, "end": { - "line": 41, + "line": 42, "column": 22 } } }, "range": [ - 1027, - 1041 + 1079, + 1093 ], "loc": { "start": { - "line": 41, + "line": 42, "column": 8 }, "end": { - "line": 41, + "line": 42, "column": 22 } } @@ -1541,16 +1738,16 @@ "type": "Identifier", "name": "f", "range": [ - 1044, - 1045 + 1096, + 1097 ], "loc": { "start": { - "line": 41, + "line": 42, "column": 25 }, "end": { - "line": 41, + "line": 42, "column": 26 } } @@ -1559,31 +1756,31 @@ "type": "Identifier", "name": "help_instructions_text", "range": [ - 1046, - 1068 + 1098, + 1120 ], "loc": { "start": { - "line": 41, + "line": 42, "column": 27 }, "end": { - "line": 41, + "line": 42, "column": 49 } } }, "range": [ - 1044, - 1068 + 1096, + 1120 ], "loc": { "start": { - "line": 41, + "line": 42, "column": 25 }, "end": { - "line": 41, + "line": 42, "column": 49 } } @@ -1595,16 +1792,16 @@ "type": "Identifier", "name": "f", "range": [ - 1083, - 1084 + 1135, + 1136 ], "loc": { "start": { - "line": 42, + "line": 43, "column": 12 }, "end": { - "line": 42, + "line": 43, "column": 13 } } @@ -1613,31 +1810,31 @@ "type": "Identifier", "name": "help_instructions_text", "range": [ - 1085, - 1107 + 1137, + 1159 ], "loc": { "start": { - "line": 42, + "line": 43, "column": 14 }, "end": { - "line": 42, + "line": 43, "column": 36 } } }, "range": [ - 1083, - 1107 + 1135, + 1159 ], "loc": { "start": { - "line": 42, + "line": 43, "column": 12 }, "end": { - "line": 42, + "line": 43, "column": 36 } } @@ -1671,16 +1868,16 @@ "value": "Use the filters above each column to filter and limit table ", "raw": "'Use the filters above each column to filter and limit table '", "range": [ - 1122, - 1184 + 1174, + 1236 ], "loc": { "start": { - "line": 43, + "line": 44, "column": 12 }, "end": { - "line": 43, + "line": 44, "column": 74 } } @@ -1690,31 +1887,31 @@ "value": "data. Advanced searches can be performed by using the following ", "raw": "'data. Advanced searches can be performed by using the following '", "range": [ - 1199, - 1265 + 1251, + 1317 ], "loc": { "start": { - "line": 44, + "line": 45, "column": 12 }, "end": { - "line": 44, + "line": 45, "column": 78 } } }, "range": [ - 1122, - 1265 + 1174, + 1317 ], "loc": { "start": { - "line": 43, + "line": 44, "column": 12 }, "end": { - "line": 44, + "line": 45, "column": 78 } } @@ -1724,31 +1921,31 @@ "value": "operators:
<, <=, >, ", "raw": "'operators:
<, <=, >, '", "range": [ - 1280, - 1339 + 1332, + 1391 ], "loc": { "start": { - "line": 45, + "line": 46, "column": 12 }, "end": { - "line": 45, + "line": 46, "column": 71 } } }, "range": [ - 1122, - 1339 + 1174, + 1391 ], "loc": { "start": { - "line": 43, + "line": 44, "column": 12 }, "end": { - "line": 45, + "line": 46, "column": 71 } } @@ -1758,31 +1955,31 @@ "value": ">=, =, *, !, {, }, ", "raw": "'>=, =, *, !, {, }, '", "range": [ - 1354, - 1420 + 1406, + 1472 ], "loc": { "start": { - "line": 46, + "line": 47, "column": 12 }, "end": { - "line": 46, + "line": 47, "column": 78 } } }, "range": [ - 1122, - 1420 + 1174, + 1472 ], "loc": { "start": { - "line": 43, + "line": 44, "column": 12 }, "end": { - "line": 46, + "line": 47, "column": 78 } } @@ -1792,31 +1989,31 @@ "value": "||,&&, [empty], [nonempty], ", "raw": "'||,&&, [empty], [nonempty], '", "range": [ - 1435, - 1501 + 1487, + 1553 ], "loc": { "start": { - "line": 47, + "line": 48, "column": 12 }, "end": { - "line": 47, + "line": 48, "column": 78 } } }, "range": [ - 1122, - 1501 + 1174, + 1553 ], "loc": { "start": { - "line": 43, + "line": 44, "column": 12 }, "end": { - "line": 47, + "line": 48, "column": 78 } } @@ -1826,31 +2023,31 @@ "value": "rgx:
rgx:
", "raw": "'\" target=\"_blank\">'", "range": [ - 1557, - 1577 + 1609, + 1629 ], "loc": { "start": { - "line": 48, + "line": 49, "column": 53 }, "end": { - "line": 48, + "line": 49, "column": 73 } } }, "range": [ - 1122, - 1577 + 1174, + 1629 ], "loc": { "start": { - "line": 43, + "line": 44, "column": 12 }, "end": { - "line": 48, + "line": 49, "column": 73 } } @@ -1927,76 +2124,76 @@ "value": "Learn more
", "raw": "'Learn more
'", "range": [ - 1592, - 1613 + 1644, + 1665 ], "loc": { "start": { - "line": 49, + "line": 50, "column": 12 }, "end": { - "line": 49, + "line": 50, "column": 33 } } }, "range": [ - 1122, - 1613 + 1174, + 1665 ], "loc": { "start": { - "line": 43, + "line": 44, "column": 12 }, "end": { - "line": 49, + "line": 50, "column": 33 } } }, "range": [ - 1044, - 1613 + 1096, + 1665 ], "loc": { "start": { - "line": 41, + "line": 42, "column": 25 }, "end": { - "line": 49, + "line": 50, "column": 33 } } }, "range": [ - 1027, - 1613 + 1079, + 1665 ], "loc": { "start": { - "line": 41, + "line": 42, "column": 8 }, "end": { - "line": 49, + "line": 50, "column": 33 } } }, "range": [ - 1027, - 1614 + 1079, + 1666 ], "loc": { "start": { - "line": 41, + "line": 42, "column": 8 }, "end": { - "line": 49, + "line": 50, "column": 34 } }, @@ -2005,16 +2202,16 @@ "type": "Block", "value": "*\n * Instructions text (accepts HTML)\n * @type {String}\n ", "range": [ - 933, - 1018 + 985, + 1070 ], "loc": { "start": { - "line": 37, + "line": 38, "column": 8 }, "end": { - "line": 40, + "line": 41, "column": 11 } } @@ -2025,16 +2222,16 @@ "type": "Block", "value": "*\n * Instructions HTML\n * @type {String}\n ", "range": [ - 1624, - 1694 + 1676, + 1746 ], "loc": { "start": { - "line": 51, + "line": 52, "column": 8 }, "end": { - "line": 54, + "line": 55, "column": 11 } } @@ -2052,16 +2249,16 @@ "object": { "type": "ThisExpression", "range": [ - 1703, - 1707 + 1755, + 1759 ], "loc": { "start": { - "line": 55, + "line": 56, "column": 8 }, "end": { - "line": 55, + "line": 56, "column": 12 } } @@ -2070,31 +2267,31 @@ "type": "Identifier", "name": "instrHtml", "range": [ - 1708, - 1717 + 1760, + 1769 ], "loc": { "start": { - "line": 55, + "line": 56, "column": 13 }, "end": { - "line": 55, + "line": 56, "column": 22 } } }, "range": [ - 1703, - 1717 + 1755, + 1769 ], "loc": { "start": { - "line": 55, + "line": 56, "column": 8 }, "end": { - "line": 55, + "line": 56, "column": 22 } } @@ -2109,16 +2306,16 @@ "type": "Identifier", "name": "f", "range": [ - 1720, - 1721 + 1772, + 1773 ], "loc": { "start": { - "line": 55, + "line": 56, "column": 25 }, "end": { - "line": 55, + "line": 56, "column": 26 } } @@ -2127,31 +2324,31 @@ "type": "Identifier", "name": "help_instructions_html", "range": [ - 1722, - 1744 + 1774, + 1796 ], "loc": { "start": { - "line": 55, + "line": 56, "column": 27 }, "end": { - "line": 55, + "line": 56, "column": 49 } } }, "range": [ - 1720, - 1744 + 1772, + 1796 ], "loc": { "start": { - "line": 55, + "line": 56, "column": 25 }, "end": { - "line": 55, + "line": 56, "column": 49 } } @@ -2161,61 +2358,61 @@ "value": null, "raw": "null", "range": [ - 1748, - 1752 + 1800, + 1804 ], "loc": { "start": { - "line": 55, + "line": 56, "column": 53 }, "end": { - "line": 55, + "line": 56, "column": 57 } } }, "range": [ - 1720, - 1752 + 1772, + 1804 ], "loc": { "start": { - "line": 55, + "line": 56, "column": 25 }, "end": { - "line": 55, + "line": 56, "column": 57 } } }, "range": [ - 1703, - 1752 + 1755, + 1804 ], "loc": { "start": { - "line": 55, + "line": 56, "column": 8 }, "end": { - "line": 55, + "line": 56, "column": 57 } } }, "range": [ - 1703, - 1753 + 1755, + 1805 ], "loc": { "start": { - "line": 55, + "line": 56, "column": 8 }, "end": { - "line": 55, + "line": 56, "column": 58 } }, @@ -2224,16 +2421,16 @@ "type": "Block", "value": "*\n * Instructions HTML\n * @type {String}\n ", "range": [ - 1624, - 1694 + 1676, + 1746 ], "loc": { "start": { - "line": 51, + "line": 52, "column": 8 }, "end": { - "line": 54, + "line": 55, "column": 11 } } @@ -2244,16 +2441,16 @@ "type": "Block", "value": "*\n * Help button text ('?')\n * @type {String}\n ", "range": [ - 1763, - 1838 + 1815, + 1890 ], "loc": { "start": { - "line": 57, + "line": 58, "column": 8 }, "end": { - "line": 60, + "line": 61, "column": 11 } } @@ -2271,16 +2468,16 @@ "object": { "type": "ThisExpression", "range": [ - 1847, - 1851 + 1899, + 1903 ], "loc": { "start": { - "line": 61, + "line": 62, "column": 8 }, "end": { - "line": 61, + "line": 62, "column": 12 } } @@ -2289,31 +2486,31 @@ "type": "Identifier", "name": "btnText", "range": [ - 1852, - 1859 + 1904, + 1911 ], "loc": { "start": { - "line": 61, + "line": 62, "column": 13 }, "end": { - "line": 61, + "line": 62, "column": 20 } } }, "range": [ - 1847, - 1859 + 1899, + 1911 ], "loc": { "start": { - "line": 61, + "line": 62, "column": 8 }, "end": { - "line": 61, + "line": 62, "column": 20 } } @@ -2328,16 +2525,16 @@ "type": "Identifier", "name": "f", "range": [ - 1862, - 1863 + 1914, + 1915 ], "loc": { "start": { - "line": 61, + "line": 62, "column": 23 }, "end": { - "line": 61, + "line": 62, "column": 24 } } @@ -2346,31 +2543,31 @@ "type": "Identifier", "name": "help_instructions_btn_text", "range": [ - 1864, - 1890 + 1916, + 1942 ], "loc": { "start": { - "line": 61, + "line": 62, "column": 25 }, "end": { - "line": 61, + "line": 62, "column": 51 } } }, "range": [ - 1862, - 1890 + 1914, + 1942 ], "loc": { "start": { - "line": 61, + "line": 62, "column": 23 }, "end": { - "line": 61, + "line": 62, "column": 51 } } @@ -2380,61 +2577,61 @@ "value": "?", "raw": "'?'", "range": [ - 1894, - 1897 + 1946, + 1949 ], "loc": { "start": { - "line": 61, + "line": 62, "column": 55 }, "end": { - "line": 61, + "line": 62, "column": 58 } } }, "range": [ - 1862, - 1897 + 1914, + 1949 ], "loc": { "start": { - "line": 61, + "line": 62, "column": 23 }, "end": { - "line": 61, + "line": 62, "column": 58 } } }, "range": [ - 1847, - 1897 + 1899, + 1949 ], "loc": { "start": { - "line": 61, + "line": 62, "column": 8 }, "end": { - "line": 61, + "line": 62, "column": 58 } } }, "range": [ - 1847, - 1898 + 1899, + 1950 ], "loc": { "start": { - "line": 61, + "line": 62, "column": 8 }, "end": { - "line": 61, + "line": 62, "column": 59 } }, @@ -2443,16 +2640,16 @@ "type": "Block", "value": "*\n * Help button text ('?')\n * @type {String}\n ", "range": [ - 1763, - 1838 + 1815, + 1890 ], "loc": { "start": { - "line": 57, + "line": 58, "column": 8 }, "end": { - "line": 60, + "line": 61, "column": 11 } } @@ -2463,16 +2660,16 @@ "type": "Block", "value": "*\n * Custom help button HTML\n * @type {String}\n ", "range": [ - 1908, - 1984 + 1960, + 2036 ], "loc": { "start": { - "line": 63, + "line": 64, "column": 8 }, "end": { - "line": 66, + "line": 67, "column": 11 } } @@ -2490,16 +2687,16 @@ "object": { "type": "ThisExpression", "range": [ - 1993, - 1997 + 2045, + 2049 ], "loc": { "start": { - "line": 67, + "line": 68, "column": 8 }, "end": { - "line": 67, + "line": 68, "column": 12 } } @@ -2508,31 +2705,31 @@ "type": "Identifier", "name": "btnHtml", "range": [ - 1998, - 2005 + 2050, + 2057 ], "loc": { "start": { - "line": 67, + "line": 68, "column": 13 }, "end": { - "line": 67, + "line": 68, "column": 20 } } }, "range": [ - 1993, - 2005 + 2045, + 2057 ], "loc": { "start": { - "line": 67, + "line": 68, "column": 8 }, "end": { - "line": 67, + "line": 68, "column": 20 } } @@ -2547,16 +2744,16 @@ "type": "Identifier", "name": "f", "range": [ - 2008, - 2009 + 2060, + 2061 ], "loc": { "start": { - "line": 67, + "line": 68, "column": 23 }, "end": { - "line": 67, + "line": 68, "column": 24 } } @@ -2565,31 +2762,31 @@ "type": "Identifier", "name": "help_instructions_btn_html", "range": [ - 2010, - 2036 + 2062, + 2088 ], "loc": { "start": { - "line": 67, + "line": 68, "column": 25 }, "end": { - "line": 67, + "line": 68, "column": 51 } } }, "range": [ - 2008, - 2036 + 2060, + 2088 ], "loc": { "start": { - "line": 67, + "line": 68, "column": 23 }, "end": { - "line": 67, + "line": 68, "column": 51 } } @@ -2599,61 +2796,61 @@ "value": null, "raw": "null", "range": [ - 2040, - 2044 + 2092, + 2096 ], "loc": { "start": { - "line": 67, + "line": 68, "column": 55 }, "end": { - "line": 67, + "line": 68, "column": 59 } } }, "range": [ - 2008, - 2044 + 2060, + 2096 ], "loc": { "start": { - "line": 67, + "line": 68, "column": 23 }, "end": { - "line": 67, + "line": 68, "column": 59 } } }, "range": [ - 1993, - 2044 + 2045, + 2096 ], "loc": { "start": { - "line": 67, + "line": 68, "column": 8 }, "end": { - "line": 67, + "line": 68, "column": 59 } } }, "range": [ - 1993, - 2045 + 2045, + 2097 ], "loc": { "start": { - "line": 67, + "line": 68, "column": 8 }, "end": { - "line": 67, + "line": 68, "column": 60 } }, @@ -2662,16 +2859,16 @@ "type": "Block", "value": "*\n * Custom help button HTML\n * @type {String}\n ", "range": [ - 1908, - 1984 + 1960, + 2036 ], "loc": { "start": { - "line": 63, + "line": 64, "column": 8 }, "end": { - "line": 66, + "line": 67, "column": 11 } } @@ -2682,16 +2879,16 @@ "type": "Block", "value": "*\n * Css class for help button\n * @type {String}\n ", "range": [ - 2055, - 2133 + 2107, + 2185 ], "loc": { "start": { - "line": 69, + "line": 70, "column": 8 }, "end": { - "line": 72, + "line": 73, "column": 11 } } @@ -2709,16 +2906,16 @@ "object": { "type": "ThisExpression", "range": [ - 2142, - 2146 + 2194, + 2198 ], "loc": { "start": { - "line": 73, + "line": 74, "column": 8 }, "end": { - "line": 73, + "line": 74, "column": 12 } } @@ -2727,31 +2924,31 @@ "type": "Identifier", "name": "btnCssClass", "range": [ - 2147, - 2158 + 2199, + 2210 ], "loc": { "start": { - "line": 73, + "line": 74, "column": 13 }, "end": { - "line": 73, + "line": 74, "column": 24 } } }, "range": [ - 2142, - 2158 + 2194, + 2210 ], "loc": { "start": { - "line": 73, + "line": 74, "column": 8 }, "end": { - "line": 73, + "line": 74, "column": 24 } } @@ -2766,16 +2963,16 @@ "type": "Identifier", "name": "f", "range": [ - 2161, - 2162 + 2213, + 2214 ], "loc": { "start": { - "line": 73, + "line": 74, "column": 27 }, "end": { - "line": 73, + "line": 74, "column": 28 } } @@ -2784,31 +2981,31 @@ "type": "Identifier", "name": "help_instructions_btn_css_class", "range": [ - 2163, - 2194 + 2215, + 2246 ], "loc": { "start": { - "line": 73, + "line": 74, "column": 29 }, "end": { - "line": 73, + "line": 74, "column": 60 } } }, "range": [ - 2161, - 2194 + 2213, + 2246 ], "loc": { "start": { - "line": 73, + "line": 74, "column": 27 }, "end": { - "line": 73, + "line": 74, "column": 60 } } @@ -2818,61 +3015,61 @@ "value": "helpBtn", "raw": "'helpBtn'", "range": [ - 2198, - 2207 + 2250, + 2259 ], "loc": { "start": { - "line": 73, + "line": 74, "column": 64 }, "end": { - "line": 73, + "line": 74, "column": 73 } } }, "range": [ - 2161, - 2207 + 2213, + 2259 ], "loc": { "start": { - "line": 73, + "line": 74, "column": 27 }, "end": { - "line": 73, + "line": 74, "column": 73 } } }, "range": [ - 2142, - 2207 + 2194, + 2259 ], "loc": { "start": { - "line": 73, + "line": 74, "column": 8 }, "end": { - "line": 73, + "line": 74, "column": 73 } } }, "range": [ - 2142, - 2208 + 2194, + 2260 ], "loc": { "start": { - "line": 73, + "line": 74, "column": 8 }, "end": { - "line": 73, + "line": 74, "column": 74 } }, @@ -2881,16 +3078,16 @@ "type": "Block", "value": "*\n * Css class for help button\n * @type {String}\n ", "range": [ - 2055, - 2133 + 2107, + 2185 ], "loc": { "start": { - "line": 69, + "line": 70, "column": 8 }, "end": { - "line": 72, + "line": 73, "column": 11 } } @@ -2901,16 +3098,16 @@ "type": "Block", "value": "*\n * Css class for help container element\n * @type {String}\n ", "range": [ - 2218, - 2307 + 2270, + 2359 ], "loc": { "start": { - "line": 75, + "line": 76, "column": 8 }, "end": { - "line": 78, + "line": 79, "column": 11 } } @@ -2928,16 +3125,16 @@ "object": { "type": "ThisExpression", "range": [ - 2316, - 2320 + 2368, + 2372 ], "loc": { "start": { - "line": 79, + "line": 80, "column": 8 }, "end": { - "line": 79, + "line": 80, "column": 12 } } @@ -2946,31 +3143,31 @@ "type": "Identifier", "name": "contCssClass", "range": [ - 2321, - 2333 + 2373, + 2385 ], "loc": { "start": { - "line": 79, + "line": 80, "column": 13 }, "end": { - "line": 79, + "line": 80, "column": 25 } } }, "range": [ - 2316, - 2333 + 2368, + 2385 ], "loc": { "start": { - "line": 79, + "line": 80, "column": 8 }, "end": { - "line": 79, + "line": 80, "column": 25 } } @@ -2985,16 +3182,16 @@ "type": "Identifier", "name": "f", "range": [ - 2336, - 2337 + 2388, + 2389 ], "loc": { "start": { - "line": 79, + "line": 80, "column": 28 }, "end": { - "line": 79, + "line": 80, "column": 29 } } @@ -3003,31 +3200,31 @@ "type": "Identifier", "name": "help_instructions_container_css_class", "range": [ - 2338, - 2375 + 2390, + 2427 ], "loc": { "start": { - "line": 79, + "line": 80, "column": 30 }, "end": { - "line": 79, + "line": 80, "column": 67 } } }, "range": [ - 2336, - 2375 + 2388, + 2427 ], "loc": { "start": { - "line": 79, + "line": 80, "column": 28 }, "end": { - "line": 79, + "line": 80, "column": 67 } } @@ -3037,61 +3234,61 @@ "value": "helpCont", "raw": "'helpCont'", "range": [ - 2391, - 2401 + 2443, + 2453 ], "loc": { "start": { - "line": 80, + "line": 81, "column": 12 }, "end": { - "line": 80, + "line": 81, "column": 22 } } }, "range": [ - 2336, - 2401 + 2388, + 2453 ], "loc": { "start": { - "line": 79, + "line": 80, "column": 28 }, "end": { - "line": 80, + "line": 81, "column": 22 } } }, "range": [ - 2316, - 2401 + 2368, + 2453 ], "loc": { "start": { - "line": 79, + "line": 80, "column": 8 }, "end": { - "line": 80, + "line": 81, "column": 22 } } }, "range": [ - 2316, - 2402 + 2368, + 2454 ], "loc": { "start": { - "line": 79, + "line": 80, "column": 8 }, "end": { - "line": 80, + "line": 81, "column": 23 } }, @@ -3100,16 +3297,16 @@ "type": "Block", "value": "*\n * Css class for help container element\n * @type {String}\n ", "range": [ - 2218, - 2307 + 2270, + 2359 ], "loc": { "start": { - "line": 75, + "line": 76, "column": 8 }, "end": { - "line": 78, + "line": 79, "column": 11 } } @@ -3118,18 +3315,18 @@ "trailingComments": [ { "type": "Block", - "value": "*\n * Stores button DOM element\n * @type {DOMElement}\n ", + "value": "*\n * Button DOM element\n * @type {DOMElement}\n ", "range": [ - 2412, - 2494 + 2464, + 2539 ], "loc": { "start": { - "line": 82, + "line": 83, "column": 8 }, "end": { - "line": 85, + "line": 86, "column": 11 } } @@ -3147,16 +3344,16 @@ "object": { "type": "ThisExpression", "range": [ - 2503, - 2507 + 2548, + 2552 ], "loc": { "start": { - "line": 86, + "line": 87, "column": 8 }, "end": { - "line": 86, + "line": 87, "column": 12 } } @@ -3165,31 +3362,31 @@ "type": "Identifier", "name": "btn", "range": [ - 2508, - 2511 + 2553, + 2556 ], "loc": { "start": { - "line": 86, + "line": 87, "column": 13 }, "end": { - "line": 86, + "line": 87, "column": 16 } } }, "range": [ - 2503, - 2511 + 2548, + 2556 ], "loc": { "start": { - "line": 86, + "line": 87, "column": 8 }, "end": { - "line": 86, + "line": 87, "column": 16 } } @@ -3199,64 +3396,64 @@ "value": null, "raw": "null", "range": [ - 2514, - 2518 + 2559, + 2563 ], "loc": { "start": { - "line": 86, + "line": 87, "column": 19 }, "end": { - "line": 86, + "line": 87, "column": 23 } } }, "range": [ - 2503, - 2518 + 2548, + 2563 ], "loc": { "start": { - "line": 86, + "line": 87, "column": 8 }, "end": { - "line": 86, + "line": 87, "column": 23 } } }, "range": [ - 2503, - 2519 + 2548, + 2564 ], "loc": { "start": { - "line": 86, + "line": 87, "column": 8 }, "end": { - "line": 86, + "line": 87, "column": 24 } }, "leadingComments": [ { "type": "Block", - "value": "*\n * Stores button DOM element\n * @type {DOMElement}\n ", + "value": "*\n * Button DOM element\n * @type {DOMElement}\n ", "range": [ - 2412, - 2494 + 2464, + 2539 ], "loc": { "start": { - "line": 82, + "line": 83, "column": 8 }, "end": { - "line": 85, + "line": 86, "column": 11 } } @@ -3265,18 +3462,18 @@ "trailingComments": [ { "type": "Block", - "value": "*\n * Stores help container DOM element\n * @type {DOMElement}\n ", + "value": "*\n * Help container DOM element\n * @type {DOMElement}\n ", "range": [ - 2529, - 2619 + 2574, + 2657 ], "loc": { "start": { - "line": 88, + "line": 89, "column": 8 }, "end": { - "line": 91, + "line": 92, "column": 11 } } @@ -3294,16 +3491,16 @@ "object": { "type": "ThisExpression", "range": [ - 2628, - 2632 + 2666, + 2670 ], "loc": { "start": { - "line": 92, + "line": 93, "column": 8 }, "end": { - "line": 92, + "line": 93, "column": 12 } } @@ -3312,31 +3509,31 @@ "type": "Identifier", "name": "cont", "range": [ - 2633, - 2637 + 2671, + 2675 ], "loc": { "start": { - "line": 92, + "line": 93, "column": 13 }, "end": { - "line": 92, + "line": 93, "column": 17 } } }, "range": [ - 2628, - 2637 + 2666, + 2675 ], "loc": { "start": { - "line": 92, + "line": 93, "column": 8 }, "end": { - "line": 92, + "line": 93, "column": 17 } } @@ -3346,64 +3543,211 @@ "value": null, "raw": "null", "range": [ - 2640, - 2644 + 2678, + 2682 ], "loc": { "start": { - "line": 92, + "line": 93, "column": 20 }, "end": { - "line": 92, + "line": 93, "column": 24 } } }, "range": [ - 2628, - 2644 + 2666, + 2682 ], "loc": { "start": { - "line": 92, + "line": 93, "column": 8 }, "end": { - "line": 92, + "line": 93, "column": 24 } } }, "range": [ - 2628, - 2645 + 2666, + 2683 ], "loc": { "start": { - "line": 92, + "line": 93, "column": 8 }, "end": { - "line": 92, + "line": 93, "column": 25 } }, "leadingComments": [ { "type": "Block", - "value": "*\n * Stores help container DOM element\n * @type {DOMElement}\n ", + "value": "*\n * Help container DOM element\n * @type {DOMElement}\n ", "range": [ - 2529, - 2619 + 2574, + 2657 ], "loc": { "start": { - "line": 88, + "line": 89, "column": 8 }, "end": { - "line": 91, + "line": 92, + "column": 11 + } + } + } + ], + "trailingComments": [ + { + "type": "Block", + "value": "*\n * Bound mouseup wrapper\n * @private\n ", + "range": [ + 2693, + 2761 + ], + "loc": { + "start": { + "line": 95, + "column": 8 + }, + "end": { + "line": 98, + "column": 11 + } + } + } + ] + }, + { + "type": "ExpressionStatement", + "expression": { + "type": "AssignmentExpression", + "operator": "=", + "left": { + "type": "MemberExpression", + "computed": false, + "object": { + "type": "ThisExpression", + "range": [ + 2770, + 2774 + ], + "loc": { + "start": { + "line": 99, + "column": 8 + }, + "end": { + "line": 99, + "column": 12 + } + } + }, + "property": { + "type": "Identifier", + "name": "boundMouseup", + "range": [ + 2775, + 2787 + ], + "loc": { + "start": { + "line": 99, + "column": 13 + }, + "end": { + "line": 99, + "column": 25 + } + } + }, + "range": [ + 2770, + 2787 + ], + "loc": { + "start": { + "line": 99, + "column": 8 + }, + "end": { + "line": 99, + "column": 25 + } + } + }, + "right": { + "type": "Literal", + "value": null, + "raw": "null", + "range": [ + 2790, + 2794 + ], + "loc": { + "start": { + "line": 99, + "column": 28 + }, + "end": { + "line": 99, + "column": 32 + } + } + }, + "range": [ + 2770, + 2794 + ], + "loc": { + "start": { + "line": 99, + "column": 8 + }, + "end": { + "line": 99, + "column": 32 + } + } + }, + "range": [ + 2770, + 2795 + ], + "loc": { + "start": { + "line": 99, + "column": 8 + }, + "end": { + "line": 99, + "column": 33 + } + }, + "leadingComments": [ + { + "type": "Block", + "value": "*\n * Bound mouseup wrapper\n * @private\n ", + "range": [ + 2693, + 2761 + ], + "loc": { + "start": { + "line": 95, + "column": 8 + }, + "end": { + "line": 98, "column": 11 } } @@ -3414,16 +3758,16 @@ "type": "Block", "value": "*\n * Default HTML appended to instructions text\n * @type {String}\n ", "range": [ - 2655, - 2750 + 2805, + 2900 ], "loc": { "start": { - "line": 94, + "line": 101, "column": 8 }, "end": { - "line": 97, + "line": 104, "column": 11 } } @@ -3441,16 +3785,16 @@ "object": { "type": "ThisExpression", "range": [ - 2759, - 2763 + 2909, + 2913 ], "loc": { "start": { - "line": 98, + "line": 105, "column": 8 }, "end": { - "line": 98, + "line": 105, "column": 12 } } @@ -3459,31 +3803,31 @@ "type": "Identifier", "name": "defaultHtml", "range": [ - 2764, - 2775 + 2914, + 2925 ], "loc": { "start": { - "line": 98, + "line": 105, "column": 13 }, "end": { - "line": 98, + "line": 105, "column": 24 } } }, "range": [ - 2759, - 2775 + 2909, + 2925 ], "loc": { "start": { - "line": 98, + "line": 105, "column": 8 }, "end": { - "line": 98, + "line": 105, "column": 24 } } @@ -3532,16 +3876,16 @@ "value": "

TableFilter ", "raw": "'

TableFilter '", "range": [ - 2778, - 2820 + 2928, + 2970 ], "loc": { "start": { - "line": 98, + "line": 105, "column": 27 }, "end": { - "line": 98, + "line": 105, "column": 69 } } @@ -3551,31 +3895,31 @@ "value": "v", "raw": "'v'", "range": [ - 2835, - 2838 + 2985, + 2988 ], "loc": { "start": { - "line": 99, + "line": 106, "column": 12 }, "end": { - "line": 99, + "line": 106, "column": 15 } } }, "range": [ - 2778, - 2838 + 2928, + 2988 ], "loc": { "start": { - "line": 98, + "line": 105, "column": 27 }, "end": { - "line": 99, + "line": 106, "column": 15 } } @@ -3587,16 +3931,16 @@ "type": "Identifier", "name": "tf", "range": [ - 2841, - 2843 + 2991, + 2993 ], "loc": { "start": { - "line": 99, + "line": 106, "column": 18 }, "end": { - "line": 99, + "line": 106, "column": 20 } } @@ -3605,46 +3949,46 @@ "type": "Identifier", "name": "version", "range": [ - 2844, - 2851 + 2994, + 3001 ], "loc": { "start": { - "line": 99, + "line": 106, "column": 21 }, "end": { - "line": 99, + "line": 106, "column": 28 } } }, "range": [ - 2841, - 2851 + 2991, + 3001 ], "loc": { "start": { - "line": 99, + "line": 106, "column": 18 }, "end": { - "line": 99, + "line": 106, "column": 28 } } }, "range": [ - 2778, - 2851 + 2928, + 3001 ], "loc": { "start": { - "line": 98, + "line": 105, "column": 27 }, "end": { - "line": 99, + "line": 106, "column": 28 } } @@ -3654,31 +3998,31 @@ "value": "

", "raw": "'

'", "range": [ - 2854, - 2861 + 3004, + 3011 ], "loc": { "start": { - "line": 99, + "line": 106, "column": 31 }, "end": { - "line": 99, + "line": 106, "column": 38 } } }, "range": [ - 2778, - 2861 + 2928, + 3011 ], "loc": { "start": { - "line": 98, + "line": 105, "column": 27 }, "end": { - "line": 99, + "line": 106, "column": 38 } } @@ -3688,31 +4032,31 @@ "value": "", "raw": "'\" target=\"_blank\">'", "range": [ - 2904, - 2924 + 3054, + 3074 ], "loc": { "start": { - "line": 100, + "line": 107, "column": 12 }, "end": { - "line": 100, + "line": 107, "column": 32 } } }, "range": [ - 2778, - 2924 + 2928, + 3074 ], "loc": { "start": { - "line": 98, + "line": 105, "column": 27 }, "end": { - "line": 100, + "line": 107, "column": 32 } } @@ -3788,31 +4132,31 @@ "type": "Identifier", "name": "WEBSITE_URL", "range": [ - 2927, - 2938 + 3077, + 3088 ], "loc": { "start": { - "line": 100, + "line": 107, "column": 35 }, "end": { - "line": 100, + "line": 107, "column": 46 } } }, "range": [ - 2778, - 2938 + 2928, + 3088 ], "loc": { "start": { - "line": 98, + "line": 105, "column": 27 }, "end": { - "line": 100, + "line": 107, "column": 46 } } @@ -3822,31 +4166,31 @@ "value": "", "raw": "''", "range": [ - 2941, - 2947 + 3091, + 3097 ], "loc": { "start": { - "line": 100, + "line": 107, "column": 49 }, "end": { - "line": 100, + "line": 107, "column": 55 } } }, "range": [ - 2778, - 2947 + 2928, + 3097 ], "loc": { "start": { - "line": 98, + "line": 105, "column": 27 }, "end": { - "line": 100, + "line": 107, "column": 55 } } @@ -3856,31 +4200,31 @@ "value": "
©2015-", "raw": "'
©2015-'", "range": [ - 2962, - 2986 + 3112, + 3136 ], "loc": { "start": { - "line": 101, + "line": 108, "column": 12 }, "end": { - "line": 101, + "line": 108, "column": 36 } } }, "range": [ - 2778, - 2986 + 2928, + 3136 ], "loc": { "start": { - "line": 98, + "line": 105, "column": 27 }, "end": { - "line": 101, + "line": 108, "column": 36 } } @@ -3892,16 +4236,16 @@ "type": "Identifier", "name": "tf", "range": [ - 2989, - 2991 + 3139, + 3141 ], "loc": { "start": { - "line": 101, + "line": 108, "column": 39 }, "end": { - "line": 101, + "line": 108, "column": 41 } } @@ -3910,46 +4254,46 @@ "type": "Identifier", "name": "year", "range": [ - 2992, - 2996 + 3142, + 3146 ], "loc": { "start": { - "line": 101, + "line": 108, "column": 42 }, "end": { - "line": 101, + "line": 108, "column": 46 } } }, "range": [ - 2989, - 2996 + 3139, + 3146 ], "loc": { "start": { - "line": 101, + "line": 108, "column": 39 }, "end": { - "line": 101, + "line": 108, "column": 46 } } }, "range": [ - 2778, - 2996 + 2928, + 3146 ], "loc": { "start": { - "line": 98, + "line": 105, "column": 27 }, "end": { - "line": 101, + "line": 108, "column": 46 } } @@ -3959,31 +4303,31 @@ "value": " {AUTHOR}", "raw": "' {AUTHOR}
'", "range": [ - 2999, - 3017 + 3149, + 3167 ], "loc": { "start": { - "line": 101, + "line": 108, "column": 49 }, "end": { - "line": 101, + "line": 108, "column": 67 } } }, "range": [ - 2778, - 3017 + 2928, + 3167 ], "loc": { "start": { - "line": 98, + "line": 105, "column": 27 }, "end": { - "line": 101, + "line": 108, "column": 67 } } @@ -3993,31 +4337,31 @@ "value": "
", "raw": "'
'", "range": [ - 3032, - 3078 + 3182, + 3228 ], "loc": { "start": { - "line": 102, + "line": 109, "column": 12 }, "end": { - "line": 102, + "line": 109, "column": 58 } } }, "range": [ - 2778, - 3078 + 2928, + 3228 ], "loc": { "start": { - "line": 98, + "line": 105, "column": 27 }, "end": { - "line": 102, + "line": 109, "column": 58 } } @@ -4027,61 +4371,61 @@ "value": "Close
", "raw": "'Close
'", "range": [ - 3093, - 3160 + 3243, + 3310 ], "loc": { "start": { - "line": 103, + "line": 110, "column": 12 }, "end": { - "line": 103, + "line": 110, "column": 79 } } }, "range": [ - 2778, - 3160 + 2928, + 3310 ], "loc": { "start": { - "line": 98, + "line": 105, "column": 27 }, "end": { - "line": 103, + "line": 110, "column": 79 } } }, "range": [ - 2759, - 3160 + 2909, + 3310 ], "loc": { "start": { - "line": 98, + "line": 105, "column": 8 }, "end": { - "line": 103, + "line": 110, "column": 79 } } }, "range": [ - 2759, - 3161 + 2909, + 3311 ], "loc": { "start": { - "line": 98, + "line": 105, "column": 8 }, "end": { - "line": 103, + "line": 110, "column": 80 } }, @@ -4090,16 +4434,16 @@ "type": "Block", "value": "*\n * Default HTML appended to instructions text\n * @type {String}\n ", "range": [ - 2655, - 2750 + 2805, + 2900 ], "loc": { "start": { - "line": 94, + "line": 101, "column": 8 }, "end": { - "line": 97, + "line": 104, "column": 11 } } @@ -4119,16 +4463,16 @@ "object": { "type": "ThisExpression", "range": [ - 3171, - 3175 + 3321, + 3325 ], "loc": { "start": { - "line": 105, + "line": 112, "column": 8 }, "end": { - "line": 105, + "line": 112, "column": 12 } } @@ -4137,31 +4481,31 @@ "type": "Identifier", "name": "emitter", "range": [ - 3176, - 3183 + 3326, + 3333 ], "loc": { "start": { - "line": 105, + "line": 112, "column": 13 }, "end": { - "line": 105, + "line": 112, "column": 20 } } }, "range": [ - 3171, - 3183 + 3321, + 3333 ], "loc": { "start": { - "line": 105, + "line": 112, "column": 8 }, "end": { - "line": 105, + "line": 112, "column": 20 } } @@ -4170,31 +4514,31 @@ "type": "Identifier", "name": "on", "range": [ - 3184, - 3186 + 3334, + 3336 ], "loc": { "start": { - "line": 105, + "line": 112, "column": 21 }, "end": { - "line": 105, + "line": 112, "column": 23 } } }, "range": [ - 3171, - 3186 + 3321, + 3336 ], "loc": { "start": { - "line": 105, + "line": 112, "column": 8 }, "end": { - "line": 105, + "line": 112, "column": 23 } } @@ -4208,32 +4552,32 @@ "value": "init-help", "raw": "'init-help'", "range": [ - 3188, - 3199 + 3338, + 3349 ], "loc": { "start": { - "line": 105, + "line": 112, "column": 25 }, "end": { - "line": 105, + "line": 112, "column": 36 } } } ], "range": [ - 3187, - 3200 + 3337, + 3350 ], "loc": { "start": { - "line": 105, + "line": 112, "column": 24 }, "end": { - "line": 105, + "line": 112, "column": 37 } } @@ -4250,16 +4594,16 @@ "object": { "type": "ThisExpression", "range": [ - 3208, - 3212 + 3358, + 3362 ], "loc": { "start": { - "line": 105, + "line": 112, "column": 45 }, "end": { - "line": 105, + "line": 112, "column": 49 } } @@ -4268,47 +4612,47 @@ "type": "Identifier", "name": "init", "range": [ - 3213, - 3217 + 3363, + 3367 ], "loc": { "start": { - "line": 105, + "line": 112, "column": 50 }, "end": { - "line": 105, + "line": 112, "column": 54 } } }, "range": [ - 3208, - 3217 + 3358, + 3367 ], "loc": { "start": { - "line": 105, + "line": 112, "column": 45 }, "end": { - "line": 105, + "line": 112, "column": 54 } } }, "arguments": [], "range": [ - 3208, - 3219 + 3358, + 3369 ], "loc": { "start": { - "line": 105, + "line": 112, "column": 45 }, "end": { - "line": 105, + "line": 112, "column": 56 } } @@ -4316,63 +4660,63 @@ "generator": false, "expression": true, "range": [ - 3202, - 3219 + 3352, + 3369 ], "loc": { "start": { - "line": 105, + "line": 112, "column": 39 }, "end": { - "line": 105, + "line": 112, "column": 56 } } } ], "range": [ - 3171, - 3220 + 3321, + 3370 ], "loc": { "start": { - "line": 105, + "line": 112, "column": 8 }, "end": { - "line": 105, + "line": 112, "column": 57 } } }, "range": [ - 3171, - 3221 + 3321, + 3371 ], "loc": { "start": { - "line": 105, + "line": 112, "column": 8 }, "end": { - "line": 105, + "line": 112, "column": 58 } } } ], "range": [ - 511, - 3227 + 563, + 3377 ], "loc": { "start": { - "line": 19, + "line": 20, "column": 20 }, "end": { - "line": 106, + "line": 113, "column": 5 } } @@ -4380,16 +4724,16 @@ "generator": false, "expression": false, "range": [ - 506, - 3227 + 558, + 3377 ], "loc": { "start": { - "line": 19, + "line": 20, "column": 15 }, "end": { - "line": 106, + "line": 113, "column": 5 } } @@ -4397,16 +4741,16 @@ "kind": "constructor", "computed": false, "range": [ - 495, - 3227 + 547, + 3377 ], "loc": { "start": { - "line": 19, + "line": 20, "column": 4 }, "end": { - "line": 106, + "line": 113, "column": 5 } }, @@ -4415,16 +4759,495 @@ "type": "Block", "value": "*\n * Creates an instance of Help\n * @param {TableFilter} tf TableFilter instance\n ", "range": [ - 392, - 490 + 444, + 542 ], "loc": { "start": { - "line": 15, + "line": 16, "column": 4 }, "end": { - "line": 18, + "line": 19, + "column": 7 + } + } + } + ], + "trailingComments": [ + { + "type": "Block", + "value": "*\n * Mouse-up event handler handling popup auto-close behaviour\n * @private\n ", + "range": [ + 3383, + 3476 + ], + "loc": { + "start": { + "line": 115, + "column": 4 + }, + "end": { + "line": 118, + "column": 7 + } + } + } + ], + "static": false + }, + { + "type": "MethodDefinition", + "key": { + "type": "Identifier", + "name": "onMouseup", + "range": [ + 3481, + 3490 + ], + "loc": { + "start": { + "line": 119, + "column": 4 + }, + "end": { + "line": 119, + "column": 13 + } + } + }, + "value": { + "type": "FunctionExpression", + "id": null, + "params": [ + { + "type": "Identifier", + "name": "evt", + "range": [ + 3491, + 3494 + ], + "loc": { + "start": { + "line": 119, + "column": 14 + }, + "end": { + "line": 119, + "column": 17 + } + } + } + ], + "body": { + "type": "BlockStatement", + "body": [ + { + "type": "VariableDeclaration", + "declarations": [ + { + "type": "VariableDeclarator", + "id": { + "type": "Identifier", + "name": "targetElm", + "range": [ + 3510, + 3519 + ], + "loc": { + "start": { + "line": 120, + "column": 12 + }, + "end": { + "line": 120, + "column": 21 + } + } + }, + "init": { + "type": "CallExpression", + "callee": { + "type": "Identifier", + "name": "targetEvt", + "range": [ + 3522, + 3531 + ], + "loc": { + "start": { + "line": 120, + "column": 24 + }, + "end": { + "line": 120, + "column": 33 + } + } + }, + "arguments": [ + { + "type": "Identifier", + "name": "evt", + "range": [ + 3532, + 3535 + ], + "loc": { + "start": { + "line": 120, + "column": 34 + }, + "end": { + "line": 120, + "column": 37 + } + } + } + ], + "range": [ + 3522, + 3536 + ], + "loc": { + "start": { + "line": 120, + "column": 24 + }, + "end": { + "line": 120, + "column": 38 + } + } + }, + "range": [ + 3510, + 3536 + ], + "loc": { + "start": { + "line": 120, + "column": 12 + }, + "end": { + "line": 120, + "column": 38 + } + } + } + ], + "kind": "let", + "range": [ + 3506, + 3537 + ], + "loc": { + "start": { + "line": 120, + "column": 8 + }, + "end": { + "line": 120, + "column": 39 + } + } + }, + { + "type": "IfStatement", + "test": { + "type": "BinaryExpression", + "operator": "!==", + "left": { + "type": "Identifier", + "name": "targetElm", + "range": [ + 3550, + 3559 + ], + "loc": { + "start": { + "line": 121, + "column": 12 + }, + "end": { + "line": 121, + "column": 21 + } + } + }, + "right": { + "type": "MemberExpression", + "computed": false, + "object": { + "type": "ThisExpression", + "range": [ + 3564, + 3568 + ], + "loc": { + "start": { + "line": 121, + "column": 26 + }, + "end": { + "line": 121, + "column": 30 + } + } + }, + "property": { + "type": "Identifier", + "name": "cont", + "range": [ + 3569, + 3573 + ], + "loc": { + "start": { + "line": 121, + "column": 31 + }, + "end": { + "line": 121, + "column": 35 + } + } + }, + "range": [ + 3564, + 3573 + ], + "loc": { + "start": { + "line": 121, + "column": 26 + }, + "end": { + "line": 121, + "column": 35 + } + } + }, + "range": [ + 3550, + 3573 + ], + "loc": { + "start": { + "line": 121, + "column": 12 + }, + "end": { + "line": 121, + "column": 35 + } + } + }, + "consequent": { + "type": "BlockStatement", + "body": [ + { + "type": "ExpressionStatement", + "expression": { + "type": "CallExpression", + "callee": { + "type": "MemberExpression", + "computed": false, + "object": { + "type": "ThisExpression", + "range": [ + 3589, + 3593 + ], + "loc": { + "start": { + "line": 122, + "column": 12 + }, + "end": { + "line": 122, + "column": 16 + } + } + }, + "property": { + "type": "Identifier", + "name": "toggle", + "range": [ + 3594, + 3600 + ], + "loc": { + "start": { + "line": 122, + "column": 17 + }, + "end": { + "line": 122, + "column": 23 + } + } + }, + "range": [ + 3589, + 3600 + ], + "loc": { + "start": { + "line": 122, + "column": 12 + }, + "end": { + "line": 122, + "column": 23 + } + } + }, + "arguments": [], + "range": [ + 3589, + 3602 + ], + "loc": { + "start": { + "line": 122, + "column": 12 + }, + "end": { + "line": 122, + "column": 25 + } + } + }, + "range": [ + 3589, + 3603 + ], + "loc": { + "start": { + "line": 122, + "column": 12 + }, + "end": { + "line": 122, + "column": 26 + } + } + } + ], + "range": [ + 3575, + 3613 + ], + "loc": { + "start": { + "line": 121, + "column": 37 + }, + "end": { + "line": 123, + "column": 9 + } + } + }, + "alternate": null, + "range": [ + 3546, + 3613 + ], + "loc": { + "start": { + "line": 121, + "column": 8 + }, + "end": { + "line": 123, + "column": 9 + } + } + }, + { + "type": "ReturnStatement", + "argument": null, + "range": [ + 3622, + 3629 + ], + "loc": { + "start": { + "line": 124, + "column": 8 + }, + "end": { + "line": 124, + "column": 15 + } + } + } + ], + "range": [ + 3496, + 3635 + ], + "loc": { + "start": { + "line": 119, + "column": 19 + }, + "end": { + "line": 125, + "column": 5 + } + } + }, + "generator": false, + "expression": false, + "range": [ + 3490, + 3635 + ], + "loc": { + "start": { + "line": 119, + "column": 13 + }, + "end": { + "line": 125, + "column": 5 + } + } + }, + "kind": "method", + "computed": false, + "range": [ + 3481, + 3635 + ], + "loc": { + "start": { + "line": 119, + "column": 4 + }, + "end": { + "line": 125, + "column": 5 + } + }, + "leadingComments": [ + { + "type": "Block", + "value": "*\n * Mouse-up event handler handling popup auto-close behaviour\n * @private\n ", + "range": [ + 3383, + 3476 + ], + "loc": { + "start": { + "line": 115, + "column": 4 + }, + "end": { + "line": 118, "column": 7 } } @@ -4435,16 +5258,16 @@ "type": "Block", "value": "*\n * Initialise Help instance\n ", "range": [ - 3233, - 3276 + 3641, + 3684 ], "loc": { "start": { - "line": 108, + "line": 127, "column": 4 }, "end": { - "line": 110, + "line": 129, "column": 7 } } @@ -4458,16 +5281,16 @@ "type": "Identifier", "name": "init", "range": [ - 3281, - 3285 + 3689, + 3693 ], "loc": { "start": { - "line": 111, + "line": 130, "column": 4 }, "end": { - "line": 111, + "line": 130, "column": 8 } } @@ -4487,16 +5310,16 @@ "object": { "type": "ThisExpression", "range": [ - 3302, - 3306 + 3710, + 3714 ], "loc": { "start": { - "line": 112, + "line": 131, "column": 12 }, "end": { - "line": 112, + "line": 131, "column": 16 } } @@ -4505,31 +5328,31 @@ "type": "Identifier", "name": "initialized", "range": [ - 3307, - 3318 + 3715, + 3726 ], "loc": { "start": { - "line": 112, + "line": 131, "column": 17 }, "end": { - "line": 112, + "line": 131, "column": 28 } } }, "range": [ - 3302, - 3318 + 3710, + 3726 ], "loc": { "start": { - "line": 112, + "line": 131, "column": 12 }, "end": { - "line": 112, + "line": 131, "column": 28 } } @@ -4541,48 +5364,48 @@ "type": "ReturnStatement", "argument": null, "range": [ - 3334, - 3341 + 3742, + 3749 ], "loc": { "start": { - "line": 113, + "line": 132, "column": 12 }, "end": { - "line": 113, + "line": 132, "column": 19 } } } ], "range": [ - 3320, - 3351 + 3728, + 3759 ], "loc": { "start": { - "line": 112, + "line": 131, "column": 30 }, "end": { - "line": 114, + "line": 133, "column": 9 } } }, "alternate": null, "range": [ - 3298, - 3351 + 3706, + 3759 ], "loc": { "start": { - "line": 112, + "line": 131, "column": 8 }, "end": { - "line": 114, + "line": 133, "column": 9 } } @@ -4596,16 +5419,16 @@ "type": "Identifier", "name": "tf", "range": [ - 3365, - 3367 + 3773, + 3775 ], "loc": { "start": { - "line": 116, + "line": 135, "column": 12 }, "end": { - "line": 116, + "line": 135, "column": 14 } } @@ -4616,16 +5439,16 @@ "object": { "type": "ThisExpression", "range": [ - 3370, - 3374 + 3778, + 3782 ], "loc": { "start": { - "line": 116, + "line": 135, "column": 17 }, "end": { - "line": 116, + "line": 135, "column": 21 } } @@ -4634,46 +5457,46 @@ "type": "Identifier", "name": "tf", "range": [ - 3375, - 3377 + 3783, + 3785 ], "loc": { "start": { - "line": 116, + "line": 135, "column": 22 }, "end": { - "line": 116, + "line": 135, "column": 24 } } }, "range": [ - 3370, - 3377 + 3778, + 3785 ], "loc": { "start": { - "line": 116, + "line": 135, "column": 17 }, "end": { - "line": 116, + "line": 135, "column": 24 } } }, "range": [ - 3365, - 3377 + 3773, + 3785 ], "loc": { "start": { - "line": 116, + "line": 135, "column": 12 }, "end": { - "line": 116, + "line": 135, "column": 24 } } @@ -4681,16 +5504,16 @@ ], "kind": "let", "range": [ - 3361, - 3378 + 3769, + 3786 ], "loc": { "start": { - "line": 116, + "line": 135, "column": 8 }, "end": { - "line": 116, + "line": 135, "column": 25 } } @@ -4704,16 +5527,16 @@ "type": "Identifier", "name": "btn", "range": [ - 3392, - 3395 + 3800, + 3803 ], "loc": { "start": { - "line": 118, + "line": 137, "column": 12 }, "end": { - "line": 118, + "line": 137, "column": 15 } } @@ -4724,16 +5547,16 @@ "type": "Identifier", "name": "createElm", "range": [ - 3398, - 3407 + 3806, + 3815 ], "loc": { "start": { - "line": 118, + "line": 137, "column": 18 }, "end": { - "line": 118, + "line": 137, "column": 27 } } @@ -4744,47 +5567,47 @@ "value": "span", "raw": "'span'", "range": [ - 3408, - 3414 + 3816, + 3822 ], "loc": { "start": { - "line": 118, + "line": 137, "column": 28 }, "end": { - "line": 118, + "line": 137, "column": 34 } } } ], "range": [ - 3398, - 3415 + 3806, + 3823 ], "loc": { "start": { - "line": 118, + "line": 137, "column": 18 }, "end": { - "line": 118, + "line": 137, "column": 35 } } }, "range": [ - 3392, - 3415 + 3800, + 3823 ], "loc": { "start": { - "line": 118, + "line": 137, "column": 12 }, "end": { - "line": 118, + "line": 137, "column": 35 } } @@ -4792,16 +5615,16 @@ ], "kind": "let", "range": [ - 3388, - 3416 + 3796, + 3824 ], "loc": { "start": { - "line": 118, + "line": 137, "column": 8 }, "end": { - "line": 118, + "line": 137, "column": 36 } } @@ -4815,16 +5638,16 @@ "type": "Identifier", "name": "cont", "range": [ - 3429, - 3433 + 3837, + 3841 ], "loc": { "start": { - "line": 119, + "line": 138, "column": 12 }, "end": { - "line": 119, + "line": 138, "column": 16 } } @@ -4835,16 +5658,16 @@ "type": "Identifier", "name": "createElm", "range": [ - 3436, - 3445 + 3844, + 3853 ], "loc": { "start": { - "line": 119, + "line": 138, "column": 19 }, "end": { - "line": 119, + "line": 138, "column": 28 } } @@ -4855,47 +5678,47 @@ "value": "div", "raw": "'div'", "range": [ - 3446, - 3451 + 3854, + 3859 ], "loc": { "start": { - "line": 119, + "line": 138, "column": 29 }, "end": { - "line": 119, + "line": 138, "column": 34 } } } ], "range": [ - 3436, - 3452 + 3844, + 3860 ], "loc": { "start": { - "line": 119, + "line": 138, "column": 19 }, "end": { - "line": 119, + "line": 138, "column": 35 } } }, "range": [ - 3429, - 3452 + 3837, + 3860 ], "loc": { "start": { - "line": 119, + "line": 138, "column": 12 }, "end": { - "line": 119, + "line": 138, "column": 35 } } @@ -4903,34 +5726,247 @@ ], "kind": "let", "range": [ - 3425, - 3453 + 3833, + 3861 ], "loc": { "start": { - "line": 119, + "line": 138, "column": 8 }, "end": { - "line": 119, + "line": 138, "column": 36 } + } + }, + { + "type": "ExpressionStatement", + "expression": { + "type": "AssignmentExpression", + "operator": "=", + "left": { + "type": "MemberExpression", + "computed": false, + "object": { + "type": "ThisExpression", + "range": [ + 3871, + 3875 + ], + "loc": { + "start": { + "line": 140, + "column": 8 + }, + "end": { + "line": 140, + "column": 12 + } + } + }, + "property": { + "type": "Identifier", + "name": "boundMouseup", + "range": [ + 3876, + 3888 + ], + "loc": { + "start": { + "line": 140, + "column": 13 + }, + "end": { + "line": 140, + "column": 25 + } + } + }, + "range": [ + 3871, + 3888 + ], + "loc": { + "start": { + "line": 140, + "column": 8 + }, + "end": { + "line": 140, + "column": 25 + } + } + }, + "right": { + "type": "CallExpression", + "callee": { + "type": "MemberExpression", + "computed": false, + "object": { + "type": "MemberExpression", + "computed": false, + "object": { + "type": "ThisExpression", + "range": [ + 3891, + 3895 + ], + "loc": { + "start": { + "line": 140, + "column": 28 + }, + "end": { + "line": 140, + "column": 32 + } + } + }, + "property": { + "type": "Identifier", + "name": "onMouseup", + "range": [ + 3896, + 3905 + ], + "loc": { + "start": { + "line": 140, + "column": 33 + }, + "end": { + "line": 140, + "column": 42 + } + } + }, + "range": [ + 3891, + 3905 + ], + "loc": { + "start": { + "line": 140, + "column": 28 + }, + "end": { + "line": 140, + "column": 42 + } + } + }, + "property": { + "type": "Identifier", + "name": "bind", + "range": [ + 3906, + 3910 + ], + "loc": { + "start": { + "line": 140, + "column": 43 + }, + "end": { + "line": 140, + "column": 47 + } + } + }, + "range": [ + 3891, + 3910 + ], + "loc": { + "start": { + "line": 140, + "column": 28 + }, + "end": { + "line": 140, + "column": 47 + } + } + }, + "arguments": [ + { + "type": "ThisExpression", + "range": [ + 3911, + 3915 + ], + "loc": { + "start": { + "line": 140, + "column": 48 + }, + "end": { + "line": 140, + "column": 52 + } + } + } + ], + "range": [ + 3891, + 3916 + ], + "loc": { + "start": { + "line": 140, + "column": 28 + }, + "end": { + "line": 140, + "column": 53 + } + } + }, + "range": [ + 3871, + 3916 + ], + "loc": { + "start": { + "line": 140, + "column": 8 + }, + "end": { + "line": 140, + "column": 53 + } + } + }, + "range": [ + 3871, + 3917 + ], + "loc": { + "start": { + "line": 140, + "column": 8 + }, + "end": { + "line": 140, + "column": 54 + } }, "trailingComments": [ { "type": "Line", "value": "help button is added to defined element", "range": [ - 3463, - 3504 + 3927, + 3968 ], "loc": { "start": { - "line": 121, + "line": 142, "column": 8 }, "end": { - "line": 121, + "line": 142, "column": 49 } } @@ -4948,16 +5984,16 @@ "object": { "type": "ThisExpression", "range": [ - 3518, - 3522 + 3982, + 3986 ], "loc": { "start": { - "line": 122, + "line": 143, "column": 13 }, "end": { - "line": 122, + "line": 143, "column": 17 } } @@ -4966,47 +6002,47 @@ "type": "Identifier", "name": "tgtId", "range": [ - 3523, - 3528 + 3987, + 3992 ], "loc": { "start": { - "line": 122, + "line": 143, "column": 18 }, "end": { - "line": 122, + "line": 143, "column": 23 } } }, "range": [ - 3518, - 3528 + 3982, + 3992 ], "loc": { "start": { - "line": 122, + "line": 143, "column": 13 }, "end": { - "line": 122, + "line": 143, "column": 23 } } }, "prefix": true, "range": [ - 3517, - 3528 + 3981, + 3992 ], "loc": { "start": { - "line": 122, + "line": 143, "column": 12 }, "end": { - "line": 122, + "line": 143, "column": 23 } } @@ -5025,16 +6061,16 @@ "type": "Identifier", "name": "tf", "range": [ - 3544, - 3546 + 4008, + 4010 ], "loc": { "start": { - "line": 123, + "line": 144, "column": 12 }, "end": { - "line": 123, + "line": 144, "column": 14 } } @@ -5043,94 +6079,94 @@ "type": "Identifier", "name": "setToolbar", "range": [ - 3547, - 3557 + 4011, + 4021 ], "loc": { "start": { - "line": 123, + "line": 144, "column": 15 }, "end": { - "line": 123, + "line": 144, "column": 25 } } }, "range": [ - 3544, - 3557 + 4008, + 4021 ], "loc": { "start": { - "line": 123, + "line": 144, "column": 12 }, "end": { - "line": 123, + "line": 144, "column": 25 } } }, "arguments": [], "range": [ - 3544, - 3559 + 4008, + 4023 ], "loc": { "start": { - "line": 123, + "line": 144, "column": 12 }, "end": { - "line": 123, + "line": 144, "column": 27 } } }, "range": [ - 3544, - 3560 + 4008, + 4024 ], "loc": { "start": { - "line": 123, + "line": 144, "column": 12 }, "end": { - "line": 123, + "line": 144, "column": 28 } } } ], "range": [ - 3530, - 3570 + 3994, + 4034 ], "loc": { "start": { - "line": 122, + "line": 143, "column": 25 }, "end": { - "line": 124, + "line": 145, "column": 9 } } }, "alternate": null, "range": [ - 3513, - 3570 + 3977, + 4034 ], "loc": { "start": { - "line": 122, + "line": 143, "column": 8 }, "end": { - "line": 124, + "line": 145, "column": 9 } }, @@ -5139,16 +6175,16 @@ "type": "Line", "value": "help button is added to defined element", "range": [ - 3463, - 3504 + 3927, + 3968 ], "loc": { "start": { - "line": 121, + "line": 142, "column": 8 }, "end": { - "line": 121, + "line": 142, "column": 49 } } @@ -5164,16 +6200,16 @@ "type": "Identifier", "name": "targetEl", "range": [ - 3583, - 3591 + 4047, + 4055 ], "loc": { "start": { - "line": 125, + "line": 146, "column": 12 }, "end": { - "line": 125, + "line": 146, "column": 20 } } @@ -5189,16 +6225,16 @@ "object": { "type": "ThisExpression", "range": [ - 3595, - 3599 + 4059, + 4063 ], "loc": { "start": { - "line": 125, + "line": 146, "column": 24 }, "end": { - "line": 125, + "line": 146, "column": 28 } } @@ -5207,47 +6243,47 @@ "type": "Identifier", "name": "tgtId", "range": [ - 3600, - 3605 + 4064, + 4069 ], "loc": { "start": { - "line": 125, + "line": 146, "column": 29 }, "end": { - "line": 125, + "line": 146, "column": 34 } } }, "range": [ - 3595, - 3605 + 4059, + 4069 ], "loc": { "start": { - "line": 125, + "line": 146, "column": 24 }, "end": { - "line": 125, + "line": 146, "column": 34 } } }, "prefix": true, "range": [ - 3594, - 3605 + 4058, + 4069 ], "loc": { "start": { - "line": 125, + "line": 146, "column": 23 }, "end": { - "line": 125, + "line": 146, "column": 34 } } @@ -5259,16 +6295,16 @@ "type": "Identifier", "name": "tf", "range": [ - 3608, - 3610 + 4072, + 4074 ], "loc": { "start": { - "line": 125, + "line": 146, "column": 37 }, "end": { - "line": 125, + "line": 146, "column": 39 } } @@ -5277,31 +6313,31 @@ "type": "Identifier", "name": "rDiv", "range": [ - 3611, - 3615 + 4075, + 4079 ], "loc": { "start": { - "line": 125, + "line": 146, "column": 40 }, "end": { - "line": 125, + "line": 146, "column": 44 } } }, "range": [ - 3608, - 3615 + 4072, + 4079 ], "loc": { "start": { - "line": 125, + "line": 146, "column": 37 }, "end": { - "line": 125, + "line": 146, "column": 44 } } @@ -5312,16 +6348,16 @@ "type": "Identifier", "name": "elm", "range": [ - 3618, - 3621 + 4082, + 4085 ], "loc": { "start": { - "line": 125, + "line": 146, "column": 47 }, "end": { - "line": 125, + "line": 146, "column": 50 } } @@ -5333,16 +6369,16 @@ "object": { "type": "ThisExpression", "range": [ - 3622, - 3626 + 4086, + 4090 ], "loc": { "start": { - "line": 125, + "line": 146, "column": 51 }, "end": { - "line": 125, + "line": 146, "column": 55 } } @@ -5351,77 +6387,77 @@ "type": "Identifier", "name": "tgtId", "range": [ - 3627, - 3632 + 4091, + 4096 ], "loc": { "start": { - "line": 125, + "line": 146, "column": 56 }, "end": { - "line": 125, + "line": 146, "column": 61 } } }, "range": [ - 3622, - 3632 + 4086, + 4096 ], "loc": { "start": { - "line": 125, + "line": 146, "column": 51 }, "end": { - "line": 125, + "line": 146, "column": 61 } } } ], "range": [ - 3618, - 3633 + 4082, + 4097 ], "loc": { "start": { - "line": 125, + "line": 146, "column": 47 }, "end": { - "line": 125, + "line": 146, "column": 62 } } }, "range": [ - 3594, - 3633 + 4058, + 4097 ], "loc": { "start": { - "line": 125, + "line": 146, "column": 23 }, "end": { - "line": 125, + "line": 146, "column": 62 } } }, "range": [ - 3583, - 3633 + 4047, + 4097 ], "loc": { "start": { - "line": 125, + "line": 146, "column": 12 }, "end": { - "line": 125, + "line": 146, "column": 62 } } @@ -5429,16 +6465,16 @@ ], "kind": "let", "range": [ - 3579, - 3634 + 4043, + 4098 ], "loc": { "start": { - "line": 125, + "line": 146, "column": 8 }, "end": { - "line": 125, + "line": 146, "column": 63 } } @@ -5454,16 +6490,16 @@ "type": "Identifier", "name": "targetEl", "range": [ - 3643, - 3651 + 4107, + 4115 ], "loc": { "start": { - "line": 126, + "line": 147, "column": 8 }, "end": { - "line": 126, + "line": 147, "column": 16 } } @@ -5472,31 +6508,31 @@ "type": "Identifier", "name": "appendChild", "range": [ - 3652, - 3663 + 4116, + 4127 ], "loc": { "start": { - "line": 126, + "line": 147, "column": 17 }, "end": { - "line": 126, + "line": 147, "column": 28 } } }, "range": [ - 3643, - 3663 + 4107, + 4127 ], "loc": { "start": { - "line": 126, + "line": 147, "column": 8 }, "end": { - "line": 126, + "line": 147, "column": 28 } } @@ -5506,47 +6542,47 @@ "type": "Identifier", "name": "btn", "range": [ - 3664, - 3667 + 4128, + 4131 ], "loc": { "start": { - "line": 126, + "line": 147, "column": 29 }, "end": { - "line": 126, + "line": 147, "column": 32 } } } ], "range": [ - 3643, - 3668 + 4107, + 4132 ], "loc": { "start": { - "line": 126, + "line": 147, "column": 8 }, "end": { - "line": 126, + "line": 147, "column": 33 } } }, "range": [ - 3643, - 3669 + 4107, + 4133 ], "loc": { "start": { - "line": 126, + "line": 147, "column": 8 }, "end": { - "line": 126, + "line": 147, "column": 34 } } @@ -5560,16 +6596,16 @@ "type": "Identifier", "name": "divContainer", "range": [ - 3683, - 3695 + 4147, + 4159 ], "loc": { "start": { - "line": 128, + "line": 149, "column": 12 }, "end": { - "line": 128, + "line": 149, "column": 24 } } @@ -5585,16 +6621,16 @@ "object": { "type": "ThisExpression", "range": [ - 3699, - 3703 + 4163, + 4167 ], "loc": { "start": { - "line": 128, + "line": 149, "column": 28 }, "end": { - "line": 128, + "line": 149, "column": 32 } } @@ -5603,47 +6639,47 @@ "type": "Identifier", "name": "contTgtId", "range": [ - 3704, - 3713 + 4168, + 4177 ], "loc": { "start": { - "line": 128, + "line": 149, "column": 33 }, "end": { - "line": 128, + "line": 149, "column": 42 } } }, "range": [ - 3699, - 3713 + 4163, + 4177 ], "loc": { "start": { - "line": 128, + "line": 149, "column": 28 }, "end": { - "line": 128, + "line": 149, "column": 42 } } }, "prefix": true, "range": [ - 3698, - 3713 + 4162, + 4177 ], "loc": { "start": { - "line": 128, + "line": 149, "column": 27 }, "end": { - "line": 128, + "line": 149, "column": 42 } } @@ -5652,16 +6688,16 @@ "type": "Identifier", "name": "btn", "range": [ - 3716, - 3719 + 4180, + 4183 ], "loc": { "start": { - "line": 128, + "line": 149, "column": 45 }, "end": { - "line": 128, + "line": 149, "column": 48 } } @@ -5672,16 +6708,16 @@ "type": "Identifier", "name": "elm", "range": [ - 3722, - 3725 + 4186, + 4189 ], "loc": { "start": { - "line": 128, + "line": 149, "column": 51 }, "end": { - "line": 128, + "line": 149, "column": 54 } } @@ -5693,16 +6729,16 @@ "object": { "type": "ThisExpression", "range": [ - 3726, - 3730 + 4190, + 4194 ], "loc": { "start": { - "line": 128, + "line": 149, "column": 55 }, "end": { - "line": 128, + "line": 149, "column": 59 } } @@ -5711,77 +6747,77 @@ "type": "Identifier", "name": "contTgtId", "range": [ - 3731, - 3740 + 4195, + 4204 ], "loc": { "start": { - "line": 128, + "line": 149, "column": 60 }, "end": { - "line": 128, + "line": 149, "column": 69 } } }, "range": [ - 3726, - 3740 + 4190, + 4204 ], "loc": { "start": { - "line": 128, + "line": 149, "column": 55 }, "end": { - "line": 128, + "line": 149, "column": 69 } } } ], "range": [ - 3722, - 3741 + 4186, + 4205 ], "loc": { "start": { - "line": 128, + "line": 149, "column": 51 }, "end": { - "line": 128, + "line": 149, "column": 70 } } }, "range": [ - 3698, - 3741 + 4162, + 4205 ], "loc": { "start": { - "line": 128, + "line": 149, "column": 27 }, "end": { - "line": 128, + "line": 149, "column": 70 } } }, "range": [ - 3683, - 3741 + 4147, + 4205 ], "loc": { "start": { - "line": 128, + "line": 149, "column": 12 }, "end": { - "line": 128, + "line": 149, "column": 70 } } @@ -5789,16 +6825,16 @@ ], "kind": "let", "range": [ - 3679, - 3742 + 4143, + 4206 ], "loc": { "start": { - "line": 128, + "line": 149, "column": 8 }, "end": { - "line": 128, + "line": 149, "column": 71 } } @@ -5814,16 +6850,16 @@ "object": { "type": "ThisExpression", "range": [ - 3757, - 3761 + 4221, + 4225 ], "loc": { "start": { - "line": 130, + "line": 151, "column": 13 }, "end": { - "line": 130, + "line": 151, "column": 17 } } @@ -5832,47 +6868,47 @@ "type": "Identifier", "name": "btnHtml", "range": [ - 3762, - 3769 + 4226, + 4233 ], "loc": { "start": { - "line": 130, + "line": 151, "column": 18 }, "end": { - "line": 130, + "line": 151, "column": 25 } } }, "range": [ - 3757, - 3769 + 4221, + 4233 ], "loc": { "start": { - "line": 130, + "line": 151, "column": 13 }, "end": { - "line": 130, + "line": 151, "column": 25 } } }, "prefix": true, "range": [ - 3756, - 3769 + 4220, + 4233 ], "loc": { "start": { - "line": 130, + "line": 151, "column": 12 }, "end": { - "line": 130, + "line": 151, "column": 25 } } @@ -5891,16 +6927,16 @@ "type": "Identifier", "name": "divContainer", "range": [ - 3785, - 3797 + 4249, + 4261 ], "loc": { "start": { - "line": 131, + "line": 152, "column": 12 }, "end": { - "line": 131, + "line": 152, "column": 24 } } @@ -5909,31 +6945,31 @@ "type": "Identifier", "name": "appendChild", "range": [ - 3798, - 3809 + 4262, + 4273 ], "loc": { "start": { - "line": 131, + "line": 152, "column": 25 }, "end": { - "line": 131, + "line": 152, "column": 36 } } }, "range": [ - 3785, - 3809 + 4249, + 4273 ], "loc": { "start": { - "line": 131, + "line": 152, "column": 12 }, "end": { - "line": 131, + "line": 152, "column": 36 } } @@ -5943,47 +6979,47 @@ "type": "Identifier", "name": "cont", "range": [ - 3810, - 3814 + 4274, + 4278 ], "loc": { "start": { - "line": 131, + "line": 152, "column": 37 }, "end": { - "line": 131, + "line": 152, "column": 41 } } } ], "range": [ - 3785, - 3815 + 4249, + 4279 ], "loc": { "start": { - "line": 131, + "line": 152, "column": 12 }, "end": { - "line": 131, + "line": 152, "column": 42 } } }, "range": [ - 3785, - 3816 + 4249, + 4280 ], "loc": { "start": { - "line": 131, + "line": 152, "column": 12 }, "end": { - "line": 131, + "line": 152, "column": 43 } } @@ -5997,16 +7033,16 @@ "type": "Identifier", "name": "helplink", "range": [ - 3833, - 3841 + 4297, + 4305 ], "loc": { "start": { - "line": 132, + "line": 153, "column": 16 }, "end": { - "line": 132, + "line": 153, "column": 24 } } @@ -6017,16 +7053,16 @@ "type": "Identifier", "name": "createElm", "range": [ - 3844, - 3853 + 4308, + 4317 ], "loc": { "start": { - "line": 132, + "line": 153, "column": 27 }, "end": { - "line": 132, + "line": 153, "column": 36 } } @@ -6037,16 +7073,16 @@ "value": "a", "raw": "'a'", "range": [ - 3854, - 3857 + 4318, + 4321 ], "loc": { "start": { - "line": 132, + "line": 153, "column": 37 }, "end": { - "line": 132, + "line": 153, "column": 40 } } @@ -6059,16 +7095,16 @@ "value": "href", "raw": "'href'", "range": [ - 3860, - 3866 + 4324, + 4330 ], "loc": { "start": { - "line": 132, + "line": 153, "column": 43 }, "end": { - "line": 132, + "line": 153, "column": 49 } } @@ -6078,63 +7114,63 @@ "value": "javascript:void(0);", "raw": "'javascript:void(0);'", "range": [ - 3868, - 3889 + 4332, + 4353 ], "loc": { "start": { - "line": 132, + "line": 153, "column": 51 }, "end": { - "line": 132, + "line": 153, "column": 72 } } } ], "range": [ - 3859, - 3890 + 4323, + 4354 ], "loc": { "start": { - "line": 132, + "line": 153, "column": 42 }, "end": { - "line": 132, + "line": 153, "column": 73 } } } ], "range": [ - 3844, - 3891 + 4308, + 4355 ], "loc": { "start": { - "line": 132, + "line": 153, "column": 27 }, "end": { - "line": 132, + "line": 153, "column": 74 } } }, "range": [ - 3833, - 3891 + 4297, + 4355 ], "loc": { "start": { - "line": 132, + "line": 153, "column": 16 }, "end": { - "line": 132, + "line": 153, "column": 74 } } @@ -6142,16 +7178,16 @@ ], "kind": "let", "range": [ - 3829, - 3892 + 4293, + 4356 ], "loc": { "start": { - "line": 132, + "line": 153, "column": 12 }, "end": { - "line": 132, + "line": 153, "column": 75 } } @@ -6168,16 +7204,16 @@ "type": "Identifier", "name": "helplink", "range": [ - 3905, - 3913 + 4369, + 4377 ], "loc": { "start": { - "line": 133, + "line": 154, "column": 12 }, "end": { - "line": 133, + "line": 154, "column": 20 } } @@ -6186,31 +7222,31 @@ "type": "Identifier", "name": "className", "range": [ - 3914, - 3923 + 4378, + 4387 ], "loc": { "start": { - "line": 133, + "line": 154, "column": 21 }, "end": { - "line": 133, + "line": 154, "column": 30 } } }, "range": [ - 3905, - 3923 + 4369, + 4387 ], "loc": { "start": { - "line": 133, + "line": 154, "column": 12 }, "end": { - "line": 133, + "line": 154, "column": 30 } } @@ -6221,16 +7257,16 @@ "object": { "type": "ThisExpression", "range": [ - 3926, - 3930 + 4390, + 4394 ], "loc": { "start": { - "line": 133, + "line": 154, "column": 33 }, "end": { - "line": 133, + "line": 154, "column": 37 } } @@ -6239,61 +7275,61 @@ "type": "Identifier", "name": "btnCssClass", "range": [ - 3931, - 3942 + 4395, + 4406 ], "loc": { "start": { - "line": 133, + "line": 154, "column": 38 }, "end": { - "line": 133, + "line": 154, "column": 49 } } }, "range": [ - 3926, - 3942 + 4390, + 4406 ], "loc": { "start": { - "line": 133, + "line": 154, "column": 33 }, "end": { - "line": 133, + "line": 154, "column": 49 } } }, "range": [ - 3905, - 3942 + 4369, + 4406 ], "loc": { "start": { - "line": 133, + "line": 154, "column": 12 }, "end": { - "line": 133, + "line": 154, "column": 49 } } }, "range": [ - 3905, - 3943 + 4369, + 4407 ], "loc": { "start": { - "line": 133, + "line": 154, "column": 12 }, "end": { - "line": 133, + "line": 154, "column": 50 } } @@ -6309,16 +7345,16 @@ "type": "Identifier", "name": "helplink", "range": [ - 3956, - 3964 + 4420, + 4428 ], "loc": { "start": { - "line": 134, + "line": 155, "column": 12 }, "end": { - "line": 134, + "line": 155, "column": 20 } } @@ -6327,31 +7363,31 @@ "type": "Identifier", "name": "appendChild", "range": [ - 3965, - 3976 + 4429, + 4440 ], "loc": { "start": { - "line": 134, + "line": 155, "column": 21 }, "end": { - "line": 134, + "line": 155, "column": 32 } } }, "range": [ - 3956, - 3976 + 4420, + 4440 ], "loc": { "start": { - "line": 134, + "line": 155, "column": 12 }, "end": { - "line": 134, + "line": 155, "column": 32 } } @@ -6363,16 +7399,16 @@ "type": "Identifier", "name": "createText", "range": [ - 3977, - 3987 + 4441, + 4451 ], "loc": { "start": { - "line": 134, + "line": 155, "column": 33 }, "end": { - "line": 134, + "line": 155, "column": 43 } } @@ -6384,16 +7420,16 @@ "object": { "type": "ThisExpression", "range": [ - 3988, - 3992 + 4452, + 4456 ], "loc": { "start": { - "line": 134, + "line": 155, "column": 44 }, "end": { - "line": 134, + "line": 155, "column": 48 } } @@ -6402,78 +7438,78 @@ "type": "Identifier", "name": "btnText", "range": [ - 3993, - 4000 + 4457, + 4464 ], "loc": { "start": { - "line": 134, + "line": 155, "column": 49 }, "end": { - "line": 134, + "line": 155, "column": 56 } } }, "range": [ - 3988, - 4000 + 4452, + 4464 ], "loc": { "start": { - "line": 134, + "line": 155, "column": 44 }, "end": { - "line": 134, + "line": 155, "column": 56 } } } ], "range": [ - 3977, - 4001 + 4441, + 4465 ], "loc": { "start": { - "line": 134, + "line": 155, "column": 33 }, "end": { - "line": 134, + "line": 155, "column": 57 } } } ], "range": [ - 3956, - 4002 + 4420, + 4466 ], "loc": { "start": { - "line": 134, + "line": 155, "column": 12 }, "end": { - "line": 134, + "line": 155, "column": 58 } } }, "range": [ - 3956, - 4003 + 4420, + 4467 ], "loc": { "start": { - "line": 134, + "line": 155, "column": 12 }, "end": { - "line": 134, + "line": 155, "column": 59 } } @@ -6489,16 +7525,16 @@ "type": "Identifier", "name": "btn", "range": [ - 4016, - 4019 + 4480, + 4483 ], "loc": { "start": { - "line": 135, + "line": 156, "column": 12 }, "end": { - "line": 135, + "line": 156, "column": 15 } } @@ -6507,31 +7543,31 @@ "type": "Identifier", "name": "appendChild", "range": [ - 4020, - 4031 + 4484, + 4495 ], "loc": { "start": { - "line": 135, + "line": 156, "column": 16 }, "end": { - "line": 135, + "line": 156, "column": 27 } } }, "range": [ - 4016, - 4031 + 4480, + 4495 ], "loc": { "start": { - "line": 135, + "line": 156, "column": 12 }, "end": { - "line": 135, + "line": 156, "column": 27 } } @@ -6541,47 +7577,47 @@ "type": "Identifier", "name": "helplink", "range": [ - 4032, - 4040 + 4496, + 4504 ], "loc": { "start": { - "line": 135, + "line": 156, "column": 28 }, "end": { - "line": 135, + "line": 156, "column": 36 } } } ], "range": [ - 4016, - 4041 + 4480, + 4505 ], "loc": { "start": { - "line": 135, + "line": 156, "column": 12 }, "end": { - "line": 135, + "line": 156, "column": 37 } } }, "range": [ - 4016, - 4042 + 4480, + 4506 ], "loc": { "start": { - "line": 135, + "line": 156, "column": 12 }, "end": { - "line": 135, + "line": 156, "column": 38 } } @@ -6594,16 +7630,16 @@ "type": "Identifier", "name": "addEvt", "range": [ - 4055, - 4061 + 4519, + 4525 ], "loc": { "start": { - "line": 136, + "line": 157, "column": 12 }, "end": { - "line": 136, + "line": 157, "column": 18 } } @@ -6613,16 +7649,16 @@ "type": "Identifier", "name": "helplink", "range": [ - 4062, - 4070 + 4526, + 4534 ], "loc": { "start": { - "line": 136, + "line": 157, "column": 19 }, "end": { - "line": 136, + "line": 157, "column": 27 } } @@ -6632,16 +7668,16 @@ "value": "click", "raw": "'click'", "range": [ - 4072, - 4079 + 4536, + 4543 ], "loc": { "start": { - "line": 136, + "line": 157, "column": 29 }, "end": { - "line": 136, + "line": 157, "column": 36 } } @@ -6658,16 +7694,16 @@ "object": { "type": "ThisExpression", "range": [ - 4087, - 4091 + 4551, + 4555 ], "loc": { "start": { - "line": 136, + "line": 157, "column": 44 }, "end": { - "line": 136, + "line": 157, "column": 48 } } @@ -6676,47 +7712,47 @@ "type": "Identifier", "name": "toggle", "range": [ - 4092, - 4098 + 4556, + 4562 ], "loc": { "start": { - "line": 136, + "line": 157, "column": 49 }, "end": { - "line": 136, + "line": 157, "column": 55 } } }, "range": [ - 4087, - 4098 + 4551, + 4562 ], "loc": { "start": { - "line": 136, + "line": 157, "column": 44 }, "end": { - "line": 136, + "line": 157, "column": 55 } } }, "arguments": [], "range": [ - 4087, - 4100 + 4551, + 4564 ], "loc": { "start": { - "line": 136, + "line": 157, "column": 44 }, "end": { - "line": 136, + "line": 157, "column": 57 } } @@ -6724,63 +7760,63 @@ "generator": false, "expression": true, "range": [ - 4081, - 4100 + 4545, + 4564 ], "loc": { "start": { - "line": 136, + "line": 157, "column": 38 }, "end": { - "line": 136, + "line": 157, "column": 57 } } } ], "range": [ - 4055, - 4101 + 4519, + 4565 ], "loc": { "start": { - "line": 136, + "line": 157, "column": 12 }, "end": { - "line": 136, + "line": 157, "column": 58 } } }, "range": [ - 4055, - 4102 + 4519, + 4566 ], "loc": { "start": { - "line": 136, + "line": 157, "column": 12 }, "end": { - "line": 136, + "line": 157, "column": 59 } } } ], "range": [ - 3771, - 4112 + 4235, + 4576 ], "loc": { "start": { - "line": 130, + "line": 151, "column": 27 }, "end": { - "line": 137, + "line": 158, "column": 9 } } @@ -6800,16 +7836,16 @@ "type": "Identifier", "name": "btn", "range": [ - 4132, - 4135 + 4596, + 4599 ], "loc": { "start": { - "line": 138, + "line": 159, "column": 12 }, "end": { - "line": 138, + "line": 159, "column": 15 } } @@ -6818,31 +7854,31 @@ "type": "Identifier", "name": "innerHTML", "range": [ - 4136, - 4145 + 4600, + 4609 ], "loc": { "start": { - "line": 138, + "line": 159, "column": 16 }, "end": { - "line": 138, + "line": 159, "column": 25 } } }, "range": [ - 4132, - 4145 + 4596, + 4609 ], "loc": { "start": { - "line": 138, + "line": 159, "column": 12 }, "end": { - "line": 138, + "line": 159, "column": 25 } } @@ -6853,16 +7889,16 @@ "object": { "type": "ThisExpression", "range": [ - 4148, - 4152 + 4612, + 4616 ], "loc": { "start": { - "line": 138, + "line": 159, "column": 28 }, "end": { - "line": 138, + "line": 159, "column": 32 } } @@ -6871,61 +7907,61 @@ "type": "Identifier", "name": "btnHtml", "range": [ - 4153, - 4160 + 4617, + 4624 ], "loc": { "start": { - "line": 138, + "line": 159, "column": 33 }, "end": { - "line": 138, + "line": 159, "column": 40 } } }, "range": [ - 4148, - 4160 + 4612, + 4624 ], "loc": { "start": { - "line": 138, + "line": 159, "column": 28 }, "end": { - "line": 138, + "line": 159, "column": 40 } } }, "range": [ - 4132, - 4160 + 4596, + 4624 ], "loc": { "start": { - "line": 138, + "line": 159, "column": 12 }, "end": { - "line": 138, + "line": 159, "column": 40 } } }, "range": [ - 4132, - 4161 + 4596, + 4625 ], "loc": { "start": { - "line": 138, + "line": 159, "column": 12 }, "end": { - "line": 138, + "line": 159, "column": 41 } } @@ -6939,16 +7975,16 @@ "type": "Identifier", "name": "helpEl", "range": [ - 4178, - 4184 + 4642, + 4648 ], "loc": { "start": { - "line": 139, + "line": 160, "column": 16 }, "end": { - "line": 139, + "line": 160, "column": 22 } } @@ -6960,16 +7996,16 @@ "type": "Identifier", "name": "btn", "range": [ - 4187, - 4190 + 4651, + 4654 ], "loc": { "start": { - "line": 139, + "line": 160, "column": 25 }, "end": { - "line": 139, + "line": 160, "column": 28 } } @@ -6978,46 +8014,46 @@ "type": "Identifier", "name": "firstChild", "range": [ - 4191, - 4201 + 4655, + 4665 ], "loc": { "start": { - "line": 139, + "line": 160, "column": 29 }, "end": { - "line": 139, + "line": 160, "column": 39 } } }, "range": [ - 4187, - 4201 + 4651, + 4665 ], "loc": { "start": { - "line": 139, + "line": 160, "column": 25 }, "end": { - "line": 139, + "line": 160, "column": 39 } } }, "range": [ - 4178, - 4201 + 4642, + 4665 ], "loc": { "start": { - "line": 139, + "line": 160, "column": 16 }, "end": { - "line": 139, + "line": 160, "column": 39 } } @@ -7025,16 +8061,16 @@ ], "kind": "let", "range": [ - 4174, - 4202 + 4638, + 4666 ], "loc": { "start": { - "line": 139, + "line": 160, "column": 12 }, "end": { - "line": 139, + "line": 160, "column": 40 } } @@ -7047,16 +8083,16 @@ "type": "Identifier", "name": "addEvt", "range": [ - 4215, - 4221 + 4679, + 4685 ], "loc": { "start": { - "line": 140, + "line": 161, "column": 12 }, "end": { - "line": 140, + "line": 161, "column": 18 } } @@ -7066,16 +8102,16 @@ "type": "Identifier", "name": "helpEl", "range": [ - 4222, - 4228 + 4686, + 4692 ], "loc": { "start": { - "line": 140, + "line": 161, "column": 19 }, "end": { - "line": 140, + "line": 161, "column": 25 } } @@ -7085,16 +8121,16 @@ "value": "click", "raw": "'click'", "range": [ - 4230, - 4237 + 4694, + 4701 ], "loc": { "start": { - "line": 140, + "line": 161, "column": 27 }, "end": { - "line": 140, + "line": 161, "column": 34 } } @@ -7111,16 +8147,16 @@ "object": { "type": "ThisExpression", "range": [ - 4245, - 4249 + 4709, + 4713 ], "loc": { "start": { - "line": 140, + "line": 161, "column": 42 }, "end": { - "line": 140, + "line": 161, "column": 46 } } @@ -7129,47 +8165,47 @@ "type": "Identifier", "name": "toggle", "range": [ - 4250, - 4256 + 4714, + 4720 ], "loc": { "start": { - "line": 140, + "line": 161, "column": 47 }, "end": { - "line": 140, + "line": 161, "column": 53 } } }, "range": [ - 4245, - 4256 + 4709, + 4720 ], "loc": { "start": { - "line": 140, + "line": 161, "column": 42 }, "end": { - "line": 140, + "line": 161, "column": 53 } } }, "arguments": [], "range": [ - 4245, - 4258 + 4709, + 4722 ], "loc": { "start": { - "line": 140, + "line": 161, "column": 42 }, "end": { - "line": 140, + "line": 161, "column": 55 } } @@ -7177,47 +8213,47 @@ "generator": false, "expression": true, "range": [ - 4239, - 4258 + 4703, + 4722 ], "loc": { "start": { - "line": 140, + "line": 161, "column": 36 }, "end": { - "line": 140, + "line": 161, "column": 55 } } } ], "range": [ - 4215, - 4259 + 4679, + 4723 ], "loc": { "start": { - "line": 140, + "line": 161, "column": 12 }, "end": { - "line": 140, + "line": 161, "column": 56 } } }, "range": [ - 4215, - 4260 + 4679, + 4724 ], "loc": { "start": { - "line": 140, + "line": 161, "column": 12 }, "end": { - "line": 140, + "line": 161, "column": 57 } } @@ -7233,16 +8269,16 @@ "type": "Identifier", "name": "divContainer", "range": [ - 4273, - 4285 + 4737, + 4749 ], "loc": { "start": { - "line": 141, + "line": 162, "column": 12 }, "end": { - "line": 141, + "line": 162, "column": 24 } } @@ -7251,31 +8287,31 @@ "type": "Identifier", "name": "appendChild", "range": [ - 4286, - 4297 + 4750, + 4761 ], "loc": { "start": { - "line": 141, + "line": 162, "column": 25 }, "end": { - "line": 141, + "line": 162, "column": 36 } } }, "range": [ - 4273, - 4297 + 4737, + 4761 ], "loc": { "start": { - "line": 141, + "line": 162, "column": 12 }, "end": { - "line": 141, + "line": 162, "column": 36 } } @@ -7285,78 +8321,78 @@ "type": "Identifier", "name": "cont", "range": [ - 4298, - 4302 + 4762, + 4766 ], "loc": { "start": { - "line": 141, + "line": 162, "column": 37 }, "end": { - "line": 141, + "line": 162, "column": 41 } } } ], "range": [ - 4273, - 4303 + 4737, + 4767 ], "loc": { "start": { - "line": 141, + "line": 162, "column": 12 }, "end": { - "line": 141, + "line": 162, "column": 42 } } }, "range": [ - 4273, - 4304 + 4737, + 4768 ], "loc": { "start": { - "line": 141, + "line": 162, "column": 12 }, "end": { - "line": 141, + "line": 162, "column": 43 } } } ], "range": [ - 4118, - 4314 + 4582, + 4778 ], "loc": { "start": { - "line": 137, + "line": 158, "column": 15 }, "end": { - "line": 142, + "line": 163, "column": 9 } } }, "range": [ - 3752, - 4314 + 4216, + 4778 ], "loc": { "start": { - "line": 130, + "line": 151, "column": 8 }, "end": { - "line": 142, + "line": 163, "column": 9 } } @@ -7372,16 +8408,16 @@ "object": { "type": "ThisExpression", "range": [ - 4329, - 4333 + 4793, + 4797 ], "loc": { "start": { - "line": 144, + "line": 165, "column": 13 }, "end": { - "line": 144, + "line": 165, "column": 17 } } @@ -7390,47 +8426,47 @@ "type": "Identifier", "name": "instrHtml", "range": [ - 4334, - 4343 + 4798, + 4807 ], "loc": { "start": { - "line": 144, + "line": 165, "column": 18 }, "end": { - "line": 144, + "line": 165, "column": 27 } } }, "range": [ - 4329, - 4343 + 4793, + 4807 ], "loc": { "start": { - "line": 144, + "line": 165, "column": 13 }, "end": { - "line": 144, + "line": 165, "column": 27 } } }, "prefix": true, "range": [ - 4328, - 4343 + 4792, + 4807 ], "loc": { "start": { - "line": 144, + "line": 165, "column": 12 }, "end": { - "line": 144, + "line": 165, "column": 27 } } @@ -7450,16 +8486,16 @@ "type": "Identifier", "name": "cont", "range": [ - 4359, - 4363 + 4823, + 4827 ], "loc": { "start": { - "line": 145, + "line": 166, "column": 12 }, "end": { - "line": 145, + "line": 166, "column": 16 } } @@ -7468,31 +8504,31 @@ "type": "Identifier", "name": "innerHTML", "range": [ - 4364, - 4373 + 4828, + 4837 ], "loc": { "start": { - "line": 145, + "line": 166, "column": 17 }, "end": { - "line": 145, + "line": 166, "column": 26 } } }, "range": [ - 4359, - 4373 + 4823, + 4837 ], "loc": { "start": { - "line": 145, + "line": 166, "column": 12 }, "end": { - "line": 145, + "line": 166, "column": 26 } } @@ -7503,16 +8539,16 @@ "object": { "type": "ThisExpression", "range": [ - 4376, - 4380 + 4840, + 4844 ], "loc": { "start": { - "line": 145, + "line": 166, "column": 29 }, "end": { - "line": 145, + "line": 166, "column": 33 } } @@ -7521,61 +8557,61 @@ "type": "Identifier", "name": "instrText", "range": [ - 4381, - 4390 + 4845, + 4854 ], "loc": { "start": { - "line": 145, + "line": 166, "column": 34 }, "end": { - "line": 145, + "line": 166, "column": 43 } } }, "range": [ - 4376, - 4390 + 4840, + 4854 ], "loc": { "start": { - "line": 145, + "line": 166, "column": 29 }, "end": { - "line": 145, + "line": 166, "column": 43 } } }, "range": [ - 4359, - 4390 + 4823, + 4854 ], "loc": { "start": { - "line": 145, + "line": 166, "column": 12 }, "end": { - "line": 145, + "line": 166, "column": 43 } } }, "range": [ - 4359, - 4391 + 4823, + 4855 ], "loc": { "start": { - "line": 145, + "line": 166, "column": 12 }, "end": { - "line": 145, + "line": 166, "column": 44 } } @@ -7592,16 +8628,16 @@ "type": "Identifier", "name": "cont", "range": [ - 4404, - 4408 + 4868, + 4872 ], "loc": { "start": { - "line": 146, + "line": 167, "column": 12 }, "end": { - "line": 146, + "line": 167, "column": 16 } } @@ -7610,31 +8646,31 @@ "type": "Identifier", "name": "className", "range": [ - 4409, - 4418 + 4873, + 4882 ], "loc": { "start": { - "line": 146, + "line": 167, "column": 17 }, "end": { - "line": 146, + "line": 167, "column": 26 } } }, "range": [ - 4404, - 4418 + 4868, + 4882 ], "loc": { "start": { - "line": 146, + "line": 167, "column": 12 }, "end": { - "line": 146, + "line": 167, "column": 26 } } @@ -7645,16 +8681,16 @@ "object": { "type": "ThisExpression", "range": [ - 4421, - 4425 + 4885, + 4889 ], "loc": { "start": { - "line": 146, + "line": 167, "column": 29 }, "end": { - "line": 146, + "line": 167, "column": 33 } } @@ -7663,61 +8699,61 @@ "type": "Identifier", "name": "contCssClass", "range": [ - 4426, - 4438 + 4890, + 4902 ], "loc": { "start": { - "line": 146, + "line": 167, "column": 34 }, "end": { - "line": 146, + "line": 167, "column": 46 } } }, "range": [ - 4421, - 4438 + 4885, + 4902 ], "loc": { "start": { - "line": 146, + "line": 167, "column": 29 }, "end": { - "line": 146, + "line": 167, "column": 46 } } }, "range": [ - 4404, - 4438 + 4868, + 4902 ], "loc": { "start": { - "line": 146, + "line": 167, "column": 12 }, "end": { - "line": 146, + "line": 167, "column": 46 } } }, "range": [ - 4404, - 4439 + 4868, + 4903 ], "loc": { "start": { - "line": 146, + "line": 167, "column": 12 }, "end": { - "line": 146, + "line": 167, "column": 47 } } @@ -7730,16 +8766,16 @@ "type": "Identifier", "name": "addEvt", "range": [ - 4452, - 4458 + 4916, + 4922 ], "loc": { "start": { - "line": 147, + "line": 168, "column": 12 }, "end": { - "line": 147, + "line": 168, "column": 18 } } @@ -7749,16 +8785,16 @@ "type": "Identifier", "name": "cont", "range": [ - 4459, - 4463 + 4923, + 4927 ], "loc": { "start": { - "line": 147, + "line": 168, "column": 19 }, "end": { - "line": 147, + "line": 168, "column": 23 } } @@ -7768,16 +8804,16 @@ "value": "dblclick", "raw": "'dblclick'", "range": [ - 4465, - 4475 + 4929, + 4939 ], "loc": { "start": { - "line": 147, + "line": 168, "column": 25 }, "end": { - "line": 147, + "line": 168, "column": 35 } } @@ -7794,16 +8830,16 @@ "object": { "type": "ThisExpression", "range": [ - 4483, - 4487 + 4947, + 4951 ], "loc": { "start": { - "line": 147, + "line": 168, "column": 43 }, "end": { - "line": 147, + "line": 168, "column": 47 } } @@ -7812,47 +8848,47 @@ "type": "Identifier", "name": "toggle", "range": [ - 4488, - 4494 + 4952, + 4958 ], "loc": { "start": { - "line": 147, + "line": 168, "column": 48 }, "end": { - "line": 147, + "line": 168, "column": 54 } } }, "range": [ - 4483, - 4494 + 4947, + 4958 ], "loc": { "start": { - "line": 147, + "line": 168, "column": 43 }, "end": { - "line": 147, + "line": 168, "column": 54 } } }, "arguments": [], "range": [ - 4483, - 4496 + 4947, + 4960 ], "loc": { "start": { - "line": 147, + "line": 168, "column": 43 }, "end": { - "line": 147, + "line": 168, "column": 56 } } @@ -7860,63 +8896,63 @@ "generator": false, "expression": true, "range": [ - 4477, - 4496 + 4941, + 4960 ], "loc": { "start": { - "line": 147, + "line": 168, "column": 37 }, "end": { - "line": 147, + "line": 168, "column": 56 } } } ], "range": [ - 4452, - 4497 + 4916, + 4961 ], "loc": { "start": { - "line": 147, + "line": 168, "column": 12 }, "end": { - "line": 147, + "line": 168, "column": 57 } } }, "range": [ - 4452, - 4498 + 4916, + 4962 ], "loc": { "start": { - "line": 147, + "line": 168, "column": 12 }, "end": { - "line": 147, + "line": 168, "column": 58 } } } ], "range": [ - 4345, - 4508 + 4809, + 4972 ], "loc": { "start": { - "line": 144, + "line": 165, "column": 29 }, "end": { - "line": 148, + "line": 169, "column": 9 } } @@ -7932,16 +8968,16 @@ "object": { "type": "ThisExpression", "range": [ - 4532, - 4536 + 4996, + 5000 ], "loc": { "start": { - "line": 149, + "line": 170, "column": 16 }, "end": { - "line": 149, + "line": 170, "column": 20 } } @@ -7950,31 +8986,31 @@ "type": "Identifier", "name": "contTgtId", "range": [ - 4537, - 4546 + 5001, + 5010 ], "loc": { "start": { - "line": 149, + "line": 170, "column": 21 }, "end": { - "line": 149, + "line": 170, "column": 30 } } }, "range": [ - 4532, - 4546 + 4996, + 5010 ], "loc": { "start": { - "line": 149, + "line": 170, "column": 16 }, "end": { - "line": 149, + "line": 170, "column": 30 } } @@ -7993,16 +9029,16 @@ "type": "Identifier", "name": "divContainer", "range": [ - 4566, - 4578 + 5030, + 5042 ], "loc": { "start": { - "line": 150, + "line": 171, "column": 16 }, "end": { - "line": 150, + "line": 171, "column": 28 } } @@ -8011,31 +9047,31 @@ "type": "Identifier", "name": "appendChild", "range": [ - 4579, - 4590 + 5043, + 5054 ], "loc": { "start": { - "line": 150, + "line": 171, "column": 29 }, "end": { - "line": 150, + "line": 171, "column": 40 } } }, "range": [ - 4566, - 4590 + 5030, + 5054 ], "loc": { "start": { - "line": 150, + "line": 171, "column": 16 }, "end": { - "line": 150, + "line": 171, "column": 40 } } @@ -8045,79 +9081,79 @@ "type": "Identifier", "name": "cont", "range": [ - 4591, - 4595 + 5055, + 5059 ], "loc": { "start": { - "line": 150, + "line": 171, "column": 41 }, "end": { - "line": 150, + "line": 171, "column": 45 } } } ], "range": [ - 4566, - 4596 + 5030, + 5060 ], "loc": { "start": { - "line": 150, + "line": 171, "column": 16 }, "end": { - "line": 150, + "line": 171, "column": 46 } } }, "range": [ - 4566, - 4597 + 5030, + 5061 ], "loc": { "start": { - "line": 150, + "line": 171, "column": 16 }, "end": { - "line": 150, + "line": 171, "column": 47 } } } ], "range": [ - 4548, - 4611 + 5012, + 5075 ], "loc": { "start": { - "line": 149, + "line": 170, "column": 32 }, "end": { - "line": 151, + "line": 172, "column": 13 } } }, "alternate": null, "range": [ - 4528, - 4611 + 4992, + 5075 ], "loc": { "start": { - "line": 149, + "line": 170, "column": 12 }, "end": { - "line": 151, + "line": 172, "column": 13 } } @@ -8134,16 +9170,16 @@ "type": "Identifier", "name": "cont", "range": [ - 4624, - 4628 + 5088, + 5092 ], "loc": { "start": { - "line": 152, + "line": 173, "column": 12 }, "end": { - "line": 152, + "line": 173, "column": 16 } } @@ -8152,31 +9188,31 @@ "type": "Identifier", "name": "innerHTML", "range": [ - 4629, - 4638 + 5093, + 5102 ], "loc": { "start": { - "line": 152, + "line": 173, "column": 17 }, "end": { - "line": 152, + "line": 173, "column": 26 } } }, "range": [ - 4624, - 4638 + 5088, + 5102 ], "loc": { "start": { - "line": 152, + "line": 173, "column": 12 }, "end": { - "line": 152, + "line": 173, "column": 26 } } @@ -8187,16 +9223,16 @@ "object": { "type": "ThisExpression", "range": [ - 4641, - 4645 + 5105, + 5109 ], "loc": { "start": { - "line": 152, + "line": 173, "column": 29 }, "end": { - "line": 152, + "line": 173, "column": 33 } } @@ -8205,61 +9241,61 @@ "type": "Identifier", "name": "instrHtml", "range": [ - 4646, - 4655 + 5110, + 5119 ], "loc": { "start": { - "line": 152, + "line": 173, "column": 34 }, "end": { - "line": 152, + "line": 173, "column": 43 } } }, "range": [ - 4641, - 4655 + 5105, + 5119 ], "loc": { "start": { - "line": 152, + "line": 173, "column": 29 }, "end": { - "line": 152, + "line": 173, "column": 43 } } }, "range": [ - 4624, - 4655 + 5088, + 5119 ], "loc": { "start": { - "line": 152, + "line": 173, "column": 12 }, "end": { - "line": 152, + "line": 173, "column": 43 } } }, "range": [ - 4624, - 4656 + 5088, + 5120 ], "loc": { "start": { - "line": 152, + "line": 173, "column": 12 }, "end": { - "line": 152, + "line": 173, "column": 44 } } @@ -8275,16 +9311,16 @@ "object": { "type": "ThisExpression", "range": [ - 4674, - 4678 + 5138, + 5142 ], "loc": { "start": { - "line": 153, + "line": 174, "column": 17 }, "end": { - "line": 153, + "line": 174, "column": 21 } } @@ -8293,47 +9329,47 @@ "type": "Identifier", "name": "contTgtId", "range": [ - 4679, - 4688 + 5143, + 5152 ], "loc": { "start": { - "line": 153, + "line": 174, "column": 22 }, "end": { - "line": 153, + "line": 174, "column": 31 } } }, "range": [ - 4674, - 4688 + 5138, + 5152 ], "loc": { "start": { - "line": 153, + "line": 174, "column": 17 }, "end": { - "line": 153, + "line": 174, "column": 31 } } }, "prefix": true, "range": [ - 4673, - 4688 + 5137, + 5152 ], "loc": { "start": { - "line": 153, + "line": 174, "column": 16 }, "end": { - "line": 153, + "line": 174, "column": 31 } } @@ -8353,16 +9389,16 @@ "type": "Identifier", "name": "cont", "range": [ - 4708, - 4712 + 5172, + 5176 ], "loc": { "start": { - "line": 154, + "line": 175, "column": 16 }, "end": { - "line": 154, + "line": 175, "column": 20 } } @@ -8371,31 +9407,31 @@ "type": "Identifier", "name": "className", "range": [ - 4713, - 4722 + 5177, + 5186 ], "loc": { "start": { - "line": 154, + "line": 175, "column": 21 }, "end": { - "line": 154, + "line": 175, "column": 30 } } }, "range": [ - 4708, - 4722 + 5172, + 5186 ], "loc": { "start": { - "line": 154, + "line": 175, "column": 16 }, "end": { - "line": 154, + "line": 175, "column": 30 } } @@ -8406,16 +9442,16 @@ "object": { "type": "ThisExpression", "range": [ - 4725, - 4729 + 5189, + 5193 ], "loc": { "start": { - "line": 154, + "line": 175, "column": 33 }, "end": { - "line": 154, + "line": 175, "column": 37 } } @@ -8424,61 +9460,61 @@ "type": "Identifier", "name": "contCssClass", "range": [ - 4730, - 4742 + 5194, + 5206 ], "loc": { "start": { - "line": 154, + "line": 175, "column": 38 }, "end": { - "line": 154, + "line": 175, "column": 50 } } }, "range": [ - 4725, - 4742 + 5189, + 5206 ], "loc": { "start": { - "line": 154, + "line": 175, "column": 33 }, "end": { - "line": 154, + "line": 175, "column": 50 } } }, "range": [ - 4708, - 4742 + 5172, + 5206 ], "loc": { "start": { - "line": 154, + "line": 175, "column": 16 }, "end": { - "line": 154, + "line": 175, "column": 50 } } }, "range": [ - 4708, - 4743 + 5172, + 5207 ], "loc": { "start": { - "line": 154, + "line": 175, "column": 16 }, "end": { - "line": 154, + "line": 175, "column": 51 } } @@ -8491,16 +9527,16 @@ "type": "Identifier", "name": "addEvt", "range": [ - 4760, - 4766 + 5224, + 5230 ], "loc": { "start": { - "line": 155, + "line": 176, "column": 16 }, "end": { - "line": 155, + "line": 176, "column": 22 } } @@ -8510,16 +9546,16 @@ "type": "Identifier", "name": "cont", "range": [ - 4767, - 4771 + 5231, + 5235 ], "loc": { "start": { - "line": 155, + "line": 176, "column": 23 }, "end": { - "line": 155, + "line": 176, "column": 27 } } @@ -8529,16 +9565,16 @@ "value": "dblclick", "raw": "'dblclick'", "range": [ - 4773, - 4783 + 5237, + 5247 ], "loc": { "start": { - "line": 155, + "line": 176, "column": 29 }, "end": { - "line": 155, + "line": 176, "column": 39 } } @@ -8555,16 +9591,16 @@ "object": { "type": "ThisExpression", "range": [ - 4791, - 4795 + 5255, + 5259 ], "loc": { "start": { - "line": 155, + "line": 176, "column": 47 }, "end": { - "line": 155, + "line": 176, "column": 51 } } @@ -8573,47 +9609,47 @@ "type": "Identifier", "name": "toggle", "range": [ - 4796, - 4802 + 5260, + 5266 ], "loc": { "start": { - "line": 155, + "line": 176, "column": 52 }, "end": { - "line": 155, + "line": 176, "column": 58 } } }, "range": [ - 4791, - 4802 + 5255, + 5266 ], "loc": { "start": { - "line": 155, + "line": 176, "column": 47 }, "end": { - "line": 155, + "line": 176, "column": 58 } } }, "arguments": [], "range": [ - 4791, - 4804 + 5255, + 5268 ], "loc": { "start": { - "line": 155, + "line": 176, "column": 47 }, "end": { - "line": 155, + "line": 176, "column": 60 } } @@ -8621,110 +9657,110 @@ "generator": false, "expression": true, "range": [ - 4785, - 4804 + 5249, + 5268 ], "loc": { "start": { - "line": 155, + "line": 176, "column": 41 }, "end": { - "line": 155, + "line": 176, "column": 60 } } } ], "range": [ - 4760, - 4805 + 5224, + 5269 ], "loc": { "start": { - "line": 155, + "line": 176, "column": 16 }, "end": { - "line": 155, + "line": 176, "column": 61 } } }, "range": [ - 4760, - 4806 + 5224, + 5270 ], "loc": { "start": { - "line": 155, + "line": 176, "column": 16 }, "end": { - "line": 155, + "line": 176, "column": 62 } } } ], "range": [ - 4690, - 4820 + 5154, + 5284 ], "loc": { "start": { - "line": 153, + "line": 174, "column": 33 }, "end": { - "line": 156, + "line": 177, "column": 13 } } }, "alternate": null, "range": [ - 4669, - 4820 + 5133, + 5284 ], "loc": { "start": { - "line": 153, + "line": 174, "column": 12 }, "end": { - "line": 156, + "line": 177, "column": 13 } } } ], "range": [ - 4514, - 4830 + 4978, + 5294 ], "loc": { "start": { - "line": 148, + "line": 169, "column": 15 }, "end": { - "line": 157, + "line": 178, "column": 9 } } }, "range": [ - 4324, - 4830 + 4788, + 5294 ], "loc": { "start": { - "line": 144, + "line": 165, "column": 8 }, "end": { - "line": 157, + "line": 178, "column": 9 } } @@ -8741,16 +9777,16 @@ "type": "Identifier", "name": "cont", "range": [ - 4839, - 4843 + 5303, + 5307 ], "loc": { "start": { - "line": 158, + "line": 179, "column": 8 }, "end": { - "line": 158, + "line": 179, "column": 12 } } @@ -8759,31 +9795,31 @@ "type": "Identifier", "name": "innerHTML", "range": [ - 4844, - 4853 + 5308, + 5317 ], "loc": { "start": { - "line": 158, + "line": 179, "column": 13 }, "end": { - "line": 158, + "line": 179, "column": 22 } } }, "range": [ - 4839, - 4853 + 5303, + 5317 ], "loc": { "start": { - "line": 158, + "line": 179, "column": 8 }, "end": { - "line": 158, + "line": 179, "column": 22 } } @@ -8794,16 +9830,16 @@ "object": { "type": "ThisExpression", "range": [ - 4857, - 4861 + 5321, + 5325 ], "loc": { "start": { - "line": 158, + "line": 179, "column": 26 }, "end": { - "line": 158, + "line": 179, "column": 30 } } @@ -8812,61 +9848,61 @@ "type": "Identifier", "name": "defaultHtml", "range": [ - 4862, - 4873 + 5326, + 5337 ], "loc": { "start": { - "line": 158, + "line": 179, "column": 31 }, "end": { - "line": 158, + "line": 179, "column": 42 } } }, "range": [ - 4857, - 4873 + 5321, + 5337 ], "loc": { "start": { - "line": 158, + "line": 179, "column": 26 }, "end": { - "line": 158, + "line": 179, "column": 42 } } }, "range": [ - 4839, - 4873 + 5303, + 5337 ], "loc": { "start": { - "line": 158, + "line": 179, "column": 8 }, "end": { - "line": 158, + "line": 179, "column": 42 } } }, "range": [ - 4839, - 4874 + 5303, + 5338 ], "loc": { "start": { - "line": 158, + "line": 179, "column": 8 }, "end": { - "line": 158, + "line": 179, "column": 43 } } @@ -8879,16 +9915,16 @@ "type": "Identifier", "name": "addEvt", "range": [ - 4883, - 4889 + 5347, + 5353 ], "loc": { "start": { - "line": 159, + "line": 180, "column": 8 }, "end": { - "line": 159, + "line": 180, "column": 14 } } @@ -8898,16 +9934,16 @@ "type": "Identifier", "name": "cont", "range": [ - 4890, - 4894 + 5354, + 5358 ], "loc": { "start": { - "line": 159, + "line": 180, "column": 15 }, "end": { - "line": 159, + "line": 180, "column": 19 } } @@ -8917,16 +9953,16 @@ "value": "click", "raw": "'click'", "range": [ - 4896, - 4903 + 5360, + 5367 ], "loc": { "start": { - "line": 159, + "line": 180, "column": 21 }, "end": { - "line": 159, + "line": 180, "column": 28 } } @@ -8943,16 +9979,16 @@ "object": { "type": "ThisExpression", "range": [ - 4911, - 4915 + 5375, + 5379 ], "loc": { "start": { - "line": 159, + "line": 180, "column": 36 }, "end": { - "line": 159, + "line": 180, "column": 40 } } @@ -8961,47 +9997,47 @@ "type": "Identifier", "name": "toggle", "range": [ - 4916, - 4922 + 5380, + 5386 ], "loc": { "start": { - "line": 159, + "line": 180, "column": 41 }, "end": { - "line": 159, + "line": 180, "column": 47 } } }, "range": [ - 4911, - 4922 + 5375, + 5386 ], "loc": { "start": { - "line": 159, + "line": 180, "column": 36 }, "end": { - "line": 159, + "line": 180, "column": 47 } } }, "arguments": [], "range": [ - 4911, - 4924 + 5375, + 5388 ], "loc": { "start": { - "line": 159, + "line": 180, "column": 36 }, "end": { - "line": 159, + "line": 180, "column": 49 } } @@ -9009,47 +10045,47 @@ "generator": false, "expression": true, "range": [ - 4905, - 4924 + 5369, + 5388 ], "loc": { "start": { - "line": 159, + "line": 180, "column": 30 }, "end": { - "line": 159, + "line": 180, "column": 49 } } } ], "range": [ - 4883, - 4925 + 5347, + 5389 ], "loc": { "start": { - "line": 159, + "line": 180, "column": 8 }, "end": { - "line": 159, + "line": 180, "column": 50 } } }, "range": [ - 4883, - 4926 + 5347, + 5390 ], "loc": { "start": { - "line": 159, + "line": 180, "column": 8 }, "end": { - "line": 159, + "line": 180, "column": 51 } } @@ -9065,16 +10101,16 @@ "object": { "type": "ThisExpression", "range": [ - 4936, - 4940 + 5400, + 5404 ], "loc": { "start": { - "line": 161, + "line": 182, "column": 8 }, "end": { - "line": 161, + "line": 182, "column": 12 } } @@ -9083,31 +10119,31 @@ "type": "Identifier", "name": "cont", "range": [ - 4941, - 4945 + 5405, + 5409 ], "loc": { "start": { - "line": 161, + "line": 182, "column": 13 }, "end": { - "line": 161, + "line": 182, "column": 17 } } }, "range": [ - 4936, - 4945 + 5400, + 5409 ], "loc": { "start": { - "line": 161, + "line": 182, "column": 8 }, "end": { - "line": 161, + "line": 182, "column": 17 } } @@ -9116,46 +10152,46 @@ "type": "Identifier", "name": "cont", "range": [ - 4948, - 4952 + 5412, + 5416 ], "loc": { "start": { - "line": 161, + "line": 182, "column": 20 }, "end": { - "line": 161, + "line": 182, "column": 24 } } }, "range": [ - 4936, - 4952 + 5400, + 5416 ], "loc": { "start": { - "line": 161, + "line": 182, "column": 8 }, "end": { - "line": 161, + "line": 182, "column": 24 } } }, "range": [ - 4936, - 4953 + 5400, + 5417 ], "loc": { "start": { - "line": 161, + "line": 182, "column": 8 }, "end": { - "line": 161, + "line": 182, "column": 25 } } @@ -9171,16 +10207,16 @@ "object": { "type": "ThisExpression", "range": [ - 4962, - 4966 + 5426, + 5430 ], "loc": { "start": { - "line": 162, + "line": 183, "column": 8 }, "end": { - "line": 162, + "line": 183, "column": 12 } } @@ -9189,31 +10225,31 @@ "type": "Identifier", "name": "btn", "range": [ - 4967, - 4970 + 5431, + 5434 ], "loc": { "start": { - "line": 162, + "line": 183, "column": 13 }, "end": { - "line": 162, + "line": 183, "column": 16 } } }, "range": [ - 4962, - 4970 + 5426, + 5434 ], "loc": { "start": { - "line": 162, + "line": 183, "column": 8 }, "end": { - "line": 162, + "line": 183, "column": 16 } } @@ -9222,46 +10258,46 @@ "type": "Identifier", "name": "btn", "range": [ - 4973, - 4976 + 5437, + 5440 ], "loc": { "start": { - "line": 162, + "line": 183, "column": 19 }, "end": { - "line": 162, + "line": 183, "column": 22 } } }, "range": [ - 4962, - 4976 + 5426, + 5440 ], "loc": { "start": { - "line": 162, + "line": 183, "column": 8 }, "end": { - "line": 162, + "line": 183, "column": 22 } } }, "range": [ - 4962, - 4977 + 5426, + 5441 ], "loc": { "start": { - "line": 162, + "line": 183, "column": 8 }, "end": { - "line": 162, + "line": 183, "column": 23 } }, @@ -9270,16 +10306,16 @@ "type": "Block", "value": "* @inherited ", "range": [ - 4986, - 5003 + 5450, + 5467 ], "loc": { "start": { - "line": 163, + "line": 184, "column": 8 }, "end": { - "line": 163, + "line": 184, "column": 25 } } @@ -9297,16 +10333,16 @@ "object": { "type": "ThisExpression", "range": [ - 5012, - 5016 + 5476, + 5480 ], "loc": { "start": { - "line": 164, + "line": 185, "column": 8 }, "end": { - "line": 164, + "line": 185, "column": 12 } } @@ -9315,31 +10351,31 @@ "type": "Identifier", "name": "initialized", "range": [ - 5017, - 5028 + 5481, + 5492 ], "loc": { "start": { - "line": 164, + "line": 185, "column": 13 }, "end": { - "line": 164, + "line": 185, "column": 24 } } }, "range": [ - 5012, - 5028 + 5476, + 5492 ], "loc": { "start": { - "line": 164, + "line": 185, "column": 8 }, "end": { - "line": 164, + "line": 185, "column": 24 } } @@ -9349,46 +10385,46 @@ "value": true, "raw": "true", "range": [ - 5031, - 5035 + 5495, + 5499 ], "loc": { "start": { - "line": 164, + "line": 185, "column": 27 }, "end": { - "line": 164, + "line": 185, "column": 31 } } }, "range": [ - 5012, - 5035 + 5476, + 5499 ], "loc": { "start": { - "line": 164, + "line": 185, "column": 8 }, "end": { - "line": 164, + "line": 185, "column": 31 } } }, "range": [ - 5012, - 5036 + 5476, + 5500 ], "loc": { "start": { - "line": 164, + "line": 185, "column": 8 }, "end": { - "line": 164, + "line": 185, "column": 32 } }, @@ -9397,16 +10433,16 @@ "type": "Block", "value": "* @inherited ", "range": [ - 4986, - 5003 + 5450, + 5467 ], "loc": { "start": { - "line": 163, + "line": 184, "column": 8 }, "end": { - "line": 163, + "line": 184, "column": 25 } } @@ -9415,16 +10451,16 @@ } ], "range": [ - 3288, - 5042 + 3696, + 5506 ], "loc": { "start": { - "line": 111, + "line": 130, "column": 11 }, "end": { - "line": 165, + "line": 186, "column": 5 } } @@ -9432,16 +10468,16 @@ "generator": false, "expression": false, "range": [ - 3285, - 5042 + 3693, + 5506 ], "loc": { "start": { - "line": 111, + "line": 130, "column": 8 }, "end": { - "line": 165, + "line": 186, "column": 5 } } @@ -9449,16 +10485,16 @@ "kind": "method", "computed": false, "range": [ - 3281, - 5042 + 3689, + 5506 ], "loc": { "start": { - "line": 111, + "line": 130, "column": 4 }, "end": { - "line": 165, + "line": 186, "column": 5 } }, @@ -9467,16 +10503,16 @@ "type": "Block", "value": "*\n * Initialise Help instance\n ", "range": [ - 3233, - 3276 + 3641, + 3684 ], "loc": { "start": { - "line": 108, + "line": 127, "column": 4 }, "end": { - "line": 110, + "line": 129, "column": 7 } } @@ -9487,16 +10523,16 @@ "type": "Block", "value": "*\n * Toggle help pop-up\n ", "range": [ - 5048, - 5085 + 5512, + 5549 ], "loc": { "start": { - "line": 167, + "line": 188, "column": 4 }, "end": { - "line": 169, + "line": 190, "column": 7 } } @@ -9510,16 +10546,16 @@ "type": "Identifier", "name": "toggle", "range": [ - 5090, - 5096 + 5554, + 5560 ], "loc": { "start": { - "line": 170, + "line": 191, "column": 4 }, "end": { - "line": 170, + "line": 191, "column": 10 } } @@ -9542,16 +10578,16 @@ "object": { "type": "ThisExpression", "range": [ - 5249, - 5253 + 5713, + 5717 ], "loc": { "start": { - "line": 173, + "line": 194, "column": 12 }, "end": { - "line": 173, + "line": 194, "column": 16 } } @@ -9560,31 +10596,31 @@ "type": "Identifier", "name": "enabled", "range": [ - 5254, - 5261 + 5718, + 5725 ], "loc": { "start": { - "line": 173, + "line": 194, "column": 17 }, "end": { - "line": 173, + "line": 194, "column": 24 } } }, "range": [ - 5249, - 5261 + 5713, + 5725 ], "loc": { "start": { - "line": 173, + "line": 194, "column": 12 }, "end": { - "line": 173, + "line": 194, "column": 24 } } @@ -9594,31 +10630,31 @@ "value": false, "raw": "false", "range": [ - 5266, - 5271 + 5730, + 5735 ], "loc": { "start": { - "line": 173, + "line": 194, "column": 29 }, "end": { - "line": 173, + "line": 194, "column": 34 } } }, "range": [ - 5249, - 5271 + 5713, + 5735 ], "loc": { "start": { - "line": 173, + "line": 194, "column": 12 }, "end": { - "line": 173, + "line": 194, "column": 34 } } @@ -9630,48 +10666,48 @@ "type": "ReturnStatement", "argument": null, "range": [ - 5287, - 5294 + 5751, + 5758 ], "loc": { "start": { - "line": 174, + "line": 195, "column": 12 }, "end": { - "line": 174, + "line": 195, "column": 19 } } } ], "range": [ - 5273, - 5304 + 5737, + 5768 ], "loc": { "start": { - "line": 173, + "line": 194, "column": 36 }, "end": { - "line": 175, + "line": 196, "column": 9 } } }, "alternate": null, "range": [ - 5245, - 5304 + 5709, + 5768 ], "loc": { "start": { - "line": 173, + "line": 194, "column": 8 }, "end": { - "line": 175, + "line": 196, "column": 9 } }, @@ -9680,16 +10716,16 @@ "type": "Line", "value": " check only if explicitily set to false as in this case undefined", "range": [ - 5109, - 5176 + 5573, + 5640 ], "loc": { "start": { - "line": 171, + "line": 192, "column": 8 }, "end": { - "line": 171, + "line": 192, "column": 75 } } @@ -9698,20 +10734,204 @@ "type": "Line", "value": " signifies the help feature is enabled by default", "range": [ - 5185, - 5236 + 5649, + 5700 ], "loc": { "start": { - "line": 172, + "line": 193, "column": 8 }, "end": { - "line": 172, + "line": 193, "column": 59 } } } + ], + "trailingComments": [ + { + "type": "Line", + "value": " ensure mouseup event handler is removed", + "range": [ + 5777, + 5819 + ], + "loc": { + "start": { + "line": 197, + "column": 8 + }, + "end": { + "line": 197, + "column": 50 + } + } + } + ] + }, + { + "type": "ExpressionStatement", + "expression": { + "type": "CallExpression", + "callee": { + "type": "Identifier", + "name": "removeEvt", + "range": [ + 5828, + 5837 + ], + "loc": { + "start": { + "line": 198, + "column": 8 + }, + "end": { + "line": 198, + "column": 17 + } + } + }, + "arguments": [ + { + "type": "Identifier", + "name": "root", + "range": [ + 5838, + 5842 + ], + "loc": { + "start": { + "line": 198, + "column": 18 + }, + "end": { + "line": 198, + "column": 22 + } + } + }, + { + "type": "Literal", + "value": "mouseup", + "raw": "'mouseup'", + "range": [ + 5844, + 5853 + ], + "loc": { + "start": { + "line": 198, + "column": 24 + }, + "end": { + "line": 198, + "column": 33 + } + } + }, + { + "type": "MemberExpression", + "computed": false, + "object": { + "type": "ThisExpression", + "range": [ + 5855, + 5859 + ], + "loc": { + "start": { + "line": 198, + "column": 35 + }, + "end": { + "line": 198, + "column": 39 + } + } + }, + "property": { + "type": "Identifier", + "name": "boundMouseup", + "range": [ + 5860, + 5872 + ], + "loc": { + "start": { + "line": 198, + "column": 40 + }, + "end": { + "line": 198, + "column": 52 + } + } + }, + "range": [ + 5855, + 5872 + ], + "loc": { + "start": { + "line": 198, + "column": 35 + }, + "end": { + "line": 198, + "column": 52 + } + } + } + ], + "range": [ + 5828, + 5873 + ], + "loc": { + "start": { + "line": 198, + "column": 8 + }, + "end": { + "line": 198, + "column": 53 + } + } + }, + "range": [ + 5828, + 5874 + ], + "loc": { + "start": { + "line": 198, + "column": 8 + }, + "end": { + "line": 198, + "column": 54 + } + }, + "leadingComments": [ + { + "type": "Line", + "value": " ensure mouseup event handler is removed", + "range": [ + 5777, + 5819 + ], + "loc": { + "start": { + "line": 197, + "column": 8 + }, + "end": { + "line": 197, + "column": 50 + } + } + } ] }, { @@ -9723,16 +10943,16 @@ "type": "Identifier", "name": "divDisplay", "range": [ - 5317, - 5327 + 5888, + 5898 ], "loc": { "start": { - "line": 176, + "line": 200, "column": 12 }, "end": { - "line": 176, + "line": 200, "column": 22 } } @@ -9749,16 +10969,16 @@ "object": { "type": "ThisExpression", "range": [ - 5330, - 5334 + 5901, + 5905 ], "loc": { "start": { - "line": 176, + "line": 200, "column": 25 }, "end": { - "line": 176, + "line": 200, "column": 29 } } @@ -9767,31 +10987,31 @@ "type": "Identifier", "name": "cont", "range": [ - 5335, - 5339 + 5906, + 5910 ], "loc": { "start": { - "line": 176, + "line": 200, "column": 30 }, "end": { - "line": 176, + "line": 200, "column": 34 } } }, "range": [ - 5330, - 5339 + 5901, + 5910 ], "loc": { "start": { - "line": 176, + "line": 200, "column": 25 }, "end": { - "line": 176, + "line": 200, "column": 34 } } @@ -9800,31 +11020,31 @@ "type": "Identifier", "name": "style", "range": [ - 5340, - 5345 + 5911, + 5916 ], "loc": { "start": { - "line": 176, + "line": 200, "column": 35 }, "end": { - "line": 176, + "line": 200, "column": 40 } } }, "range": [ - 5330, - 5345 + 5901, + 5916 ], "loc": { "start": { - "line": 176, + "line": 200, "column": 25 }, "end": { - "line": 176, + "line": 200, "column": 40 } } @@ -9833,46 +11053,46 @@ "type": "Identifier", "name": "display", "range": [ - 5346, - 5353 + 5917, + 5924 ], "loc": { "start": { - "line": 176, + "line": 200, "column": 41 }, "end": { - "line": 176, + "line": 200, "column": 48 } } }, "range": [ - 5330, - 5353 + 5901, + 5924 ], "loc": { "start": { - "line": 176, + "line": 200, "column": 25 }, "end": { - "line": 176, + "line": 200, "column": 48 } } }, "range": [ - 5317, - 5353 + 5888, + 5924 ], "loc": { "start": { - "line": 176, + "line": 200, "column": 12 }, "end": { - "line": 176, + "line": 200, "column": 48 } } @@ -9880,16 +11100,16 @@ ], "kind": "let", "range": [ - 5313, - 5354 + 5884, + 5925 ], "loc": { "start": { - "line": 176, + "line": 200, "column": 8 }, "end": { - "line": 176, + "line": 200, "column": 49 } } @@ -9906,16 +11126,16 @@ "type": "Identifier", "name": "divDisplay", "range": [ - 5367, - 5377 + 5938, + 5948 ], "loc": { "start": { - "line": 177, + "line": 201, "column": 12 }, "end": { - "line": 177, + "line": 201, "column": 22 } } @@ -9925,31 +11145,31 @@ "value": "", "raw": "''", "range": [ - 5382, - 5384 + 5953, + 5955 ], "loc": { "start": { - "line": 177, + "line": 201, "column": 27 }, "end": { - "line": 177, + "line": 201, "column": 29 } } }, "range": [ - 5367, - 5384 + 5938, + 5955 ], "loc": { "start": { - "line": 177, + "line": 201, "column": 12 }, "end": { - "line": 177, + "line": 201, "column": 29 } } @@ -9961,16 +11181,16 @@ "type": "Identifier", "name": "divDisplay", "range": [ - 5388, - 5398 + 5959, + 5969 ], "loc": { "start": { - "line": 177, + "line": 201, "column": 33 }, "end": { - "line": 177, + "line": 201, "column": 43 } } @@ -9979,46 +11199,46 @@ "type": "Identifier", "name": "NONE", "range": [ - 5403, - 5407 + 5974, + 5978 ], "loc": { "start": { - "line": 177, + "line": 201, "column": 48 }, "end": { - "line": 177, + "line": 201, "column": 52 } } }, "range": [ - 5388, - 5407 + 5959, + 5978 ], "loc": { "start": { - "line": 177, + "line": 201, "column": 33 }, "end": { - "line": 177, + "line": 201, "column": 52 } } }, "range": [ - 5367, - 5407 + 5938, + 5978 ], "loc": { "start": { - "line": 177, + "line": 201, "column": 12 }, "end": { - "line": 177, + "line": 201, "column": 52 } } @@ -10043,16 +11263,16 @@ "object": { "type": "ThisExpression", "range": [ - 5423, - 5427 + 5994, + 5998 ], "loc": { "start": { - "line": 178, + "line": 202, "column": 12 }, "end": { - "line": 178, + "line": 202, "column": 16 } } @@ -10061,31 +11281,31 @@ "type": "Identifier", "name": "cont", "range": [ - 5428, - 5432 + 5999, + 6003 ], "loc": { "start": { - "line": 178, + "line": 202, "column": 17 }, "end": { - "line": 178, + "line": 202, "column": 21 } } }, "range": [ - 5423, - 5432 + 5994, + 6003 ], "loc": { "start": { - "line": 178, + "line": 202, "column": 12 }, "end": { - "line": 178, + "line": 202, "column": 21 } } @@ -10094,31 +11314,31 @@ "type": "Identifier", "name": "style", "range": [ - 5433, - 5438 + 6004, + 6009 ], "loc": { "start": { - "line": 178, + "line": 202, "column": 22 }, "end": { - "line": 178, + "line": 202, "column": 27 } } }, "range": [ - 5423, - 5438 + 5994, + 6009 ], "loc": { "start": { - "line": 178, + "line": 202, "column": 12 }, "end": { - "line": 178, + "line": 202, "column": 27 } } @@ -10127,31 +11347,31 @@ "type": "Identifier", "name": "display", "range": [ - 5439, - 5446 + 6010, + 6017 ], "loc": { "start": { - "line": 178, + "line": 202, "column": 28 }, "end": { - "line": 178, + "line": 202, "column": 35 } } }, "range": [ - 5423, - 5446 + 5994, + 6017 ], "loc": { "start": { - "line": 178, + "line": 202, "column": 12 }, "end": { - "line": 178, + "line": 202, "column": 35 } } @@ -10161,62 +11381,206 @@ "value": "inline", "raw": "'inline'", "range": [ - 5449, - 5457 + 6020, + 6028 ], "loc": { "start": { - "line": 178, + "line": 202, "column": 38 }, "end": { - "line": 178, + "line": 202, "column": 46 } } }, "range": [ - 5423, - 5457 + 5994, + 6028 ], "loc": { "start": { - "line": 178, + "line": 202, "column": 12 }, "end": { - "line": 178, + "line": 202, "column": 46 } } }, "range": [ - 5423, - 5458 + 5994, + 6029 ], "loc": { "start": { - "line": 178, + "line": 202, "column": 12 }, "end": { - "line": 178, + "line": 202, "column": 47 } } + }, + { + "type": "ExpressionStatement", + "expression": { + "type": "CallExpression", + "callee": { + "type": "Identifier", + "name": "addEvt", + "range": [ + 6042, + 6048 + ], + "loc": { + "start": { + "line": 203, + "column": 12 + }, + "end": { + "line": 203, + "column": 18 + } + } + }, + "arguments": [ + { + "type": "Identifier", + "name": "root", + "range": [ + 6049, + 6053 + ], + "loc": { + "start": { + "line": 203, + "column": 19 + }, + "end": { + "line": 203, + "column": 23 + } + } + }, + { + "type": "Literal", + "value": "mouseup", + "raw": "'mouseup'", + "range": [ + 6055, + 6064 + ], + "loc": { + "start": { + "line": 203, + "column": 25 + }, + "end": { + "line": 203, + "column": 34 + } + } + }, + { + "type": "MemberExpression", + "computed": false, + "object": { + "type": "ThisExpression", + "range": [ + 6066, + 6070 + ], + "loc": { + "start": { + "line": 203, + "column": 36 + }, + "end": { + "line": 203, + "column": 40 + } + } + }, + "property": { + "type": "Identifier", + "name": "boundMouseup", + "range": [ + 6071, + 6083 + ], + "loc": { + "start": { + "line": 203, + "column": 41 + }, + "end": { + "line": 203, + "column": 53 + } + } + }, + "range": [ + 6066, + 6083 + ], + "loc": { + "start": { + "line": 203, + "column": 36 + }, + "end": { + "line": 203, + "column": 53 + } + } + } + ], + "range": [ + 6042, + 6084 + ], + "loc": { + "start": { + "line": 203, + "column": 12 + }, + "end": { + "line": 203, + "column": 54 + } + } + }, + "range": [ + 6042, + 6085 + ], + "loc": { + "start": { + "line": 203, + "column": 12 + }, + "end": { + "line": 203, + "column": 55 + } + } } ], "range": [ - 5409, - 5468 + 5980, + 6095 ], "loc": { "start": { - "line": 177, + "line": 201, "column": 54 }, "end": { - "line": 179, + "line": 204, "column": 9 } } @@ -10241,16 +11605,16 @@ "object": { "type": "ThisExpression", "range": [ - 5488, - 5492 + 6115, + 6119 ], "loc": { "start": { - "line": 180, + "line": 205, "column": 12 }, "end": { - "line": 180, + "line": 205, "column": 16 } } @@ -10259,31 +11623,31 @@ "type": "Identifier", "name": "cont", "range": [ - 5493, - 5497 + 6120, + 6124 ], "loc": { "start": { - "line": 180, + "line": 205, "column": 17 }, "end": { - "line": 180, + "line": 205, "column": 21 } } }, "range": [ - 5488, - 5497 + 6115, + 6124 ], "loc": { "start": { - "line": 180, + "line": 205, "column": 12 }, "end": { - "line": 180, + "line": 205, "column": 21 } } @@ -10292,31 +11656,31 @@ "type": "Identifier", "name": "style", "range": [ - 5498, - 5503 + 6125, + 6130 ], "loc": { "start": { - "line": 180, + "line": 205, "column": 22 }, "end": { - "line": 180, + "line": 205, "column": 27 } } }, "range": [ - 5488, - 5503 + 6115, + 6130 ], "loc": { "start": { - "line": 180, + "line": 205, "column": 12 }, "end": { - "line": 180, + "line": 205, "column": 27 } } @@ -10325,31 +11689,31 @@ "type": "Identifier", "name": "display", "range": [ - 5504, - 5511 + 6131, + 6138 ], "loc": { "start": { - "line": 180, + "line": 205, "column": 28 }, "end": { - "line": 180, + "line": 205, "column": 35 } } }, "range": [ - 5488, - 5511 + 6115, + 6138 ], "loc": { "start": { - "line": 180, + "line": 205, "column": 12 }, "end": { - "line": 180, + "line": 205, "column": 35 } } @@ -10358,93 +11722,93 @@ "type": "Identifier", "name": "NONE", "range": [ - 5514, - 5518 + 6141, + 6145 ], "loc": { "start": { - "line": 180, + "line": 205, "column": 38 }, "end": { - "line": 180, + "line": 205, "column": 42 } } }, "range": [ - 5488, - 5518 + 6115, + 6145 ], "loc": { "start": { - "line": 180, + "line": 205, "column": 12 }, "end": { - "line": 180, + "line": 205, "column": 42 } } }, "range": [ - 5488, - 5519 + 6115, + 6146 ], "loc": { "start": { - "line": 180, + "line": 205, "column": 12 }, "end": { - "line": 180, + "line": 205, "column": 43 } } } ], "range": [ - 5474, - 5529 + 6101, + 6156 ], "loc": { "start": { - "line": 179, + "line": 204, "column": 15 }, "end": { - "line": 181, + "line": 206, "column": 9 } } }, "range": [ - 5363, - 5529 + 5934, + 6156 ], "loc": { "start": { - "line": 177, + "line": 201, "column": 8 }, "end": { - "line": 181, + "line": 206, "column": 9 } } } ], "range": [ - 5099, - 5535 + 5563, + 6162 ], "loc": { "start": { - "line": 170, + "line": 191, "column": 13 }, "end": { - "line": 182, + "line": 207, "column": 5 } } @@ -10452,16 +11816,16 @@ "generator": false, "expression": false, "range": [ - 5096, - 5535 + 5560, + 6162 ], "loc": { "start": { - "line": 170, + "line": 191, "column": 10 }, "end": { - "line": 182, + "line": 207, "column": 5 } } @@ -10469,16 +11833,16 @@ "kind": "method", "computed": false, "range": [ - 5090, - 5535 + 5554, + 6162 ], "loc": { "start": { - "line": 170, + "line": 191, "column": 4 }, "end": { - "line": 182, + "line": 207, "column": 5 } }, @@ -10487,16 +11851,16 @@ "type": "Block", "value": "*\n * Toggle help pop-up\n ", "range": [ - 5048, - 5085 + 5512, + 5549 ], "loc": { "start": { - "line": 167, + "line": 188, "column": 4 }, "end": { - "line": 169, + "line": 190, "column": 7 } } @@ -10507,16 +11871,16 @@ "type": "Block", "value": "*\n * Remove help UI\n ", "range": [ - 5541, - 5574 + 6168, + 6201 ], "loc": { "start": { - "line": 184, + "line": 209, "column": 4 }, "end": { - "line": 186, + "line": 211, "column": 7 } } @@ -10530,16 +11894,16 @@ "type": "Identifier", "name": "destroy", "range": [ - 5579, - 5586 + 6206, + 6213 ], "loc": { "start": { - "line": 187, + "line": 212, "column": 4 }, "end": { - "line": 187, + "line": 212, "column": 11 } } @@ -10562,16 +11926,16 @@ "object": { "type": "ThisExpression", "range": [ - 5604, - 5608 + 6231, + 6235 ], "loc": { "start": { - "line": 188, + "line": 213, "column": 13 }, "end": { - "line": 188, + "line": 213, "column": 17 } } @@ -10580,47 +11944,47 @@ "type": "Identifier", "name": "initialized", "range": [ - 5609, - 5620 + 6236, + 6247 ], "loc": { "start": { - "line": 188, + "line": 213, "column": 18 }, "end": { - "line": 188, + "line": 213, "column": 29 } } }, "range": [ - 5604, - 5620 + 6231, + 6247 ], "loc": { "start": { - "line": 188, + "line": 213, "column": 13 }, "end": { - "line": 188, + "line": 213, "column": 29 } } }, "prefix": true, "range": [ - 5603, - 5620 + 6230, + 6247 ], "loc": { "start": { - "line": 188, + "line": 213, "column": 12 }, "end": { - "line": 188, + "line": 213, "column": 29 } } @@ -10632,48 +11996,48 @@ "type": "ReturnStatement", "argument": null, "range": [ - 5636, - 5643 + 6263, + 6270 ], "loc": { "start": { - "line": 189, + "line": 214, "column": 12 }, "end": { - "line": 189, + "line": 214, "column": 19 } } } ], "range": [ - 5622, - 5653 + 6249, + 6280 ], "loc": { "start": { - "line": 188, + "line": 213, "column": 31 }, "end": { - "line": 190, + "line": 215, "column": 9 } } }, "alternate": null, "range": [ - 5599, - 5653 + 6226, + 6280 ], "loc": { "start": { - "line": 188, + "line": 213, "column": 8 }, "end": { - "line": 190, + "line": 215, "column": 9 } } @@ -10686,16 +12050,16 @@ "type": "Identifier", "name": "removeElm", "range": [ - 5662, - 5671 + 6289, + 6298 ], "loc": { "start": { - "line": 191, + "line": 216, "column": 8 }, "end": { - "line": 191, + "line": 216, "column": 17 } } @@ -10707,16 +12071,16 @@ "object": { "type": "ThisExpression", "range": [ - 5672, - 5676 + 6299, + 6303 ], "loc": { "start": { - "line": 191, + "line": 216, "column": 18 }, "end": { - "line": 191, + "line": 216, "column": 22 } } @@ -10725,62 +12089,62 @@ "type": "Identifier", "name": "btn", "range": [ - 5677, - 5680 + 6304, + 6307 ], "loc": { "start": { - "line": 191, + "line": 216, "column": 23 }, "end": { - "line": 191, + "line": 216, "column": 26 } } }, "range": [ - 5672, - 5680 + 6299, + 6307 ], "loc": { "start": { - "line": 191, + "line": 216, "column": 18 }, "end": { - "line": 191, + "line": 216, "column": 26 } } } ], "range": [ - 5662, - 5681 + 6289, + 6308 ], "loc": { "start": { - "line": 191, + "line": 216, "column": 8 }, "end": { - "line": 191, + "line": 216, "column": 27 } } }, "range": [ - 5662, - 5682 + 6289, + 6309 ], "loc": { "start": { - "line": 191, + "line": 216, "column": 8 }, "end": { - "line": 191, + "line": 216, "column": 28 } } @@ -10796,16 +12160,16 @@ "object": { "type": "ThisExpression", "range": [ - 5691, - 5695 + 6318, + 6322 ], "loc": { "start": { - "line": 192, + "line": 217, "column": 8 }, "end": { - "line": 192, + "line": 217, "column": 12 } } @@ -10814,31 +12178,31 @@ "type": "Identifier", "name": "btn", "range": [ - 5696, - 5699 + 6323, + 6326 ], "loc": { "start": { - "line": 192, + "line": 217, "column": 13 }, "end": { - "line": 192, + "line": 217, "column": 16 } } }, "range": [ - 5691, - 5699 + 6318, + 6326 ], "loc": { "start": { - "line": 192, + "line": 217, "column": 8 }, "end": { - "line": 192, + "line": 217, "column": 16 } } @@ -10848,46 +12212,46 @@ "value": null, "raw": "null", "range": [ - 5702, - 5706 + 6329, + 6333 ], "loc": { "start": { - "line": 192, + "line": 217, "column": 19 }, "end": { - "line": 192, + "line": 217, "column": 23 } } }, "range": [ - 5691, - 5706 + 6318, + 6333 ], "loc": { "start": { - "line": 192, + "line": 217, "column": 8 }, "end": { - "line": 192, + "line": 217, "column": 23 } } }, "range": [ - 5691, - 5707 + 6318, + 6334 ], "loc": { "start": { - "line": 192, + "line": 217, "column": 8 }, "end": { - "line": 192, + "line": 217, "column": 24 } } @@ -10900,16 +12264,16 @@ "type": "Identifier", "name": "removeElm", "range": [ - 5717, - 5726 + 6344, + 6353 ], "loc": { "start": { - "line": 194, + "line": 219, "column": 8 }, "end": { - "line": 194, + "line": 219, "column": 17 } } @@ -10921,16 +12285,16 @@ "object": { "type": "ThisExpression", "range": [ - 5727, - 5731 + 6354, + 6358 ], "loc": { "start": { - "line": 194, + "line": 219, "column": 18 }, "end": { - "line": 194, + "line": 219, "column": 22 } } @@ -10939,62 +12303,62 @@ "type": "Identifier", "name": "cont", "range": [ - 5732, - 5736 + 6359, + 6363 ], "loc": { "start": { - "line": 194, + "line": 219, "column": 23 }, "end": { - "line": 194, + "line": 219, "column": 27 } } }, "range": [ - 5727, - 5736 + 6354, + 6363 ], "loc": { "start": { - "line": 194, + "line": 219, "column": 18 }, "end": { - "line": 194, + "line": 219, "column": 27 } } } ], "range": [ - 5717, - 5737 + 6344, + 6364 ], "loc": { "start": { - "line": 194, + "line": 219, "column": 8 }, "end": { - "line": 194, + "line": 219, "column": 28 } } }, "range": [ - 5717, - 5738 + 6344, + 6365 ], "loc": { "start": { - "line": 194, + "line": 219, "column": 8 }, "end": { - "line": 194, + "line": 219, "column": 29 } } @@ -11010,16 +12374,16 @@ "object": { "type": "ThisExpression", "range": [ - 5747, - 5751 + 6374, + 6378 ], "loc": { "start": { - "line": 195, + "line": 220, "column": 8 }, "end": { - "line": 195, + "line": 220, "column": 12 } } @@ -11028,31 +12392,31 @@ "type": "Identifier", "name": "cont", "range": [ - 5752, - 5756 + 6379, + 6383 ], "loc": { "start": { - "line": 195, + "line": 220, "column": 13 }, "end": { - "line": 195, + "line": 220, "column": 17 } } }, "range": [ - 5747, - 5756 + 6374, + 6383 ], "loc": { "start": { - "line": 195, + "line": 220, "column": 8 }, "end": { - "line": 195, + "line": 220, "column": 17 } } @@ -11062,46 +12426,46 @@ "value": null, "raw": "null", "range": [ - 5759, - 5763 + 6386, + 6390 ], "loc": { "start": { - "line": 195, + "line": 220, "column": 20 }, "end": { - "line": 195, + "line": 220, "column": 24 } } }, "range": [ - 5747, - 5763 + 6374, + 6390 ], "loc": { "start": { - "line": 195, + "line": 220, "column": 8 }, "end": { - "line": 195, + "line": 220, "column": 24 } } }, "range": [ - 5747, - 5764 + 6374, + 6391 ], "loc": { "start": { - "line": 195, + "line": 220, "column": 8 }, "end": { - "line": 195, + "line": 220, "column": 25 } } @@ -11117,16 +12481,123 @@ "object": { "type": "ThisExpression", "range": [ - 5774, - 5778 + 6401, + 6405 ], "loc": { "start": { - "line": 197, + "line": 222, "column": 8 }, "end": { - "line": 197, + "line": 222, + "column": 12 + } + } + }, + "property": { + "type": "Identifier", + "name": "boundMouseup", + "range": [ + 6406, + 6418 + ], + "loc": { + "start": { + "line": 222, + "column": 13 + }, + "end": { + "line": 222, + "column": 25 + } + } + }, + "range": [ + 6401, + 6418 + ], + "loc": { + "start": { + "line": 222, + "column": 8 + }, + "end": { + "line": 222, + "column": 25 + } + } + }, + "right": { + "type": "Literal", + "value": null, + "raw": "null", + "range": [ + 6421, + 6425 + ], + "loc": { + "start": { + "line": 222, + "column": 28 + }, + "end": { + "line": 222, + "column": 32 + } + } + }, + "range": [ + 6401, + 6425 + ], + "loc": { + "start": { + "line": 222, + "column": 8 + }, + "end": { + "line": 222, + "column": 32 + } + } + }, + "range": [ + 6401, + 6426 + ], + "loc": { + "start": { + "line": 222, + "column": 8 + }, + "end": { + "line": 222, + "column": 33 + } + } + }, + { + "type": "ExpressionStatement", + "expression": { + "type": "AssignmentExpression", + "operator": "=", + "left": { + "type": "MemberExpression", + "computed": false, + "object": { + "type": "ThisExpression", + "range": [ + 6436, + 6440 + ], + "loc": { + "start": { + "line": 224, + "column": 8 + }, + "end": { + "line": 224, "column": 12 } } @@ -11135,31 +12606,31 @@ "type": "Identifier", "name": "initialized", "range": [ - 5779, - 5790 + 6441, + 6452 ], "loc": { "start": { - "line": 197, + "line": 224, "column": 13 }, "end": { - "line": 197, + "line": 224, "column": 24 } } }, "range": [ - 5774, - 5790 + 6436, + 6452 ], "loc": { "start": { - "line": 197, + "line": 224, "column": 8 }, "end": { - "line": 197, + "line": 224, "column": 24 } } @@ -11169,62 +12640,62 @@ "value": false, "raw": "false", "range": [ - 5793, - 5798 + 6455, + 6460 ], "loc": { "start": { - "line": 197, + "line": 224, "column": 27 }, "end": { - "line": 197, + "line": 224, "column": 32 } } }, "range": [ - 5774, - 5798 + 6436, + 6460 ], "loc": { "start": { - "line": 197, + "line": 224, "column": 8 }, "end": { - "line": 197, + "line": 224, "column": 32 } } }, "range": [ - 5774, - 5799 + 6436, + 6461 ], "loc": { "start": { - "line": 197, + "line": 224, "column": 8 }, "end": { - "line": 197, + "line": 224, "column": 33 } } } ], "range": [ - 5589, - 5805 + 6216, + 6467 ], "loc": { "start": { - "line": 187, + "line": 212, "column": 14 }, "end": { - "line": 198, + "line": 225, "column": 5 } } @@ -11232,16 +12703,16 @@ "generator": false, "expression": false, "range": [ - 5586, - 5805 + 6213, + 6467 ], "loc": { "start": { - "line": 187, + "line": 212, "column": 11 }, "end": { - "line": 198, + "line": 225, "column": 5 } } @@ -11249,16 +12720,16 @@ "kind": "method", "computed": false, "range": [ - 5579, - 5805 + 6206, + 6467 ], "loc": { "start": { - "line": 187, + "line": 212, "column": 4 }, "end": { - "line": 198, + "line": 225, "column": 5 } }, @@ -11267,16 +12738,16 @@ "type": "Block", "value": "*\n * Remove help UI\n ", "range": [ - 5541, - 5574 + 6168, + 6201 ], "loc": { "start": { - "line": 184, + "line": 209, "column": 4 }, "end": { - "line": 186, + "line": 211, "column": 7 } } @@ -11286,31 +12757,31 @@ } ], "range": [ - 385, - 5808 + 437, + 6470 ], "loc": { "start": { - "line": 13, + "line": 14, "column": 34 }, "end": { - "line": 200, + "line": 227, "column": 1 } } }, "range": [ - 358, - 5808 + 410, + 6470 ], "loc": { "start": { - "line": 13, + "line": 14, "column": 7 }, "end": { - "line": 200, + "line": 227, "column": 1 } }, @@ -11319,16 +12790,16 @@ "type": "Block", "value": "*\n * Help UI component\n ", "range": [ - 322, - 350 + 374, + 402 ], "loc": { "start": { - "line": 10, + "line": 11, "column": 0 }, "end": { - "line": 12, + "line": 13, "column": 3 } } @@ -11339,16 +12810,16 @@ "specifiers": [], "source": null, "range": [ - 351, - 5808 + 403, + 6470 ], "loc": { "start": { - "line": 13, + "line": 14, "column": 0 }, "end": { - "line": 200, + "line": 227, "column": 1 } }, @@ -11357,16 +12828,16 @@ "type": "Block", "value": "*\n * Help UI component\n ", "range": [ - 322, - 350 + 374, + 402 ], "loc": { "start": { - "line": 10, + "line": 11, "column": 0 }, "end": { - "line": 12, + "line": 13, "column": 3 } } @@ -11377,7 +12848,7 @@ "sourceType": "module", "range": [ 0, - 5808 + 6470 ], "loc": { "start": { @@ -11385,7 +12856,7 @@ "column": 0 }, "end": { - "line": 200, + "line": 227, "column": 1 } }, @@ -11394,16 +12865,16 @@ "type": "Block", "value": "*\n * Help UI component\n ", "range": [ - 322, - 350 + 374, + 402 ], "loc": { "start": { - "line": 10, + "line": 11, "column": 0 }, "end": { - "line": 12, + "line": 13, "column": 3 } } @@ -11412,16 +12883,16 @@ "type": "Block", "value": "*\n * Creates an instance of Help\n * @param {TableFilter} tf TableFilter instance\n ", "range": [ - 392, - 490 + 444, + 542 ], "loc": { "start": { - "line": 15, + "line": 16, "column": 4 }, "end": { - "line": 18, + "line": 19, "column": 7 } } @@ -11430,16 +12901,16 @@ "type": "Block", "value": "*\n * ID of main custom container element\n * @type {String}\n ", "range": [ - 579, - 667 + 631, + 719 ], "loc": { "start": { - "line": 24, + "line": 25, "column": 8 }, "end": { - "line": 27, + "line": 28, "column": 11 } } @@ -11448,16 +12919,16 @@ "type": "Block", "value": "*\n * ID of custom container element for instructions\n * @type {String}\n ", "range": [ - 737, - 837 + 789, + 889 ], "loc": { "start": { - "line": 30, + "line": 31, "column": 8 }, "end": { - "line": 33, + "line": 34, "column": 11 } } @@ -11466,16 +12937,16 @@ "type": "Block", "value": "*\n * Instructions text (accepts HTML)\n * @type {String}\n ", "range": [ - 933, - 1018 + 985, + 1070 ], "loc": { "start": { - "line": 37, + "line": 38, "column": 8 }, "end": { - "line": 40, + "line": 41, "column": 11 } } @@ -11484,16 +12955,16 @@ "type": "Block", "value": "*\n * Instructions HTML\n * @type {String}\n ", "range": [ - 1624, - 1694 + 1676, + 1746 ], "loc": { "start": { - "line": 51, + "line": 52, "column": 8 }, "end": { - "line": 54, + "line": 55, "column": 11 } } @@ -11502,16 +12973,16 @@ "type": "Block", "value": "*\n * Help button text ('?')\n * @type {String}\n ", "range": [ - 1763, - 1838 + 1815, + 1890 ], "loc": { "start": { - "line": 57, + "line": 58, "column": 8 }, "end": { - "line": 60, + "line": 61, "column": 11 } } @@ -11520,16 +12991,16 @@ "type": "Block", "value": "*\n * Custom help button HTML\n * @type {String}\n ", "range": [ - 1908, - 1984 + 1960, + 2036 ], "loc": { "start": { - "line": 63, + "line": 64, "column": 8 }, "end": { - "line": 66, + "line": 67, "column": 11 } } @@ -11538,16 +13009,16 @@ "type": "Block", "value": "*\n * Css class for help button\n * @type {String}\n ", "range": [ - 2055, - 2133 + 2107, + 2185 ], "loc": { "start": { - "line": 69, + "line": 70, "column": 8 }, "end": { - "line": 72, + "line": 73, "column": 11 } } @@ -11556,52 +13027,70 @@ "type": "Block", "value": "*\n * Css class for help container element\n * @type {String}\n ", "range": [ - 2218, - 2307 + 2270, + 2359 ], "loc": { "start": { - "line": 75, + "line": 76, "column": 8 }, "end": { - "line": 78, + "line": 79, "column": 11 } } }, { "type": "Block", - "value": "*\n * Stores button DOM element\n * @type {DOMElement}\n ", + "value": "*\n * Button DOM element\n * @type {DOMElement}\n ", "range": [ - 2412, - 2494 + 2464, + 2539 ], "loc": { "start": { - "line": 82, + "line": 83, "column": 8 }, "end": { - "line": 85, + "line": 86, "column": 11 } } }, { "type": "Block", - "value": "*\n * Stores help container DOM element\n * @type {DOMElement}\n ", + "value": "*\n * Help container DOM element\n * @type {DOMElement}\n ", "range": [ - 2529, - 2619 + 2574, + 2657 ], "loc": { "start": { - "line": 88, + "line": 89, "column": 8 }, "end": { - "line": 91, + "line": 92, + "column": 11 + } + } + }, + { + "type": "Block", + "value": "*\n * Bound mouseup wrapper\n * @private\n ", + "range": [ + 2693, + 2761 + ], + "loc": { + "start": { + "line": 95, + "column": 8 + }, + "end": { + "line": 98, "column": 11 } } @@ -11610,34 +13099,52 @@ "type": "Block", "value": "*\n * Default HTML appended to instructions text\n * @type {String}\n ", "range": [ - 2655, - 2750 + 2805, + 2900 ], "loc": { "start": { - "line": 94, + "line": 101, "column": 8 }, "end": { - "line": 97, + "line": 104, "column": 11 } } }, + { + "type": "Block", + "value": "*\n * Mouse-up event handler handling popup auto-close behaviour\n * @private\n ", + "range": [ + 3383, + 3476 + ], + "loc": { + "start": { + "line": 115, + "column": 4 + }, + "end": { + "line": 118, + "column": 7 + } + } + }, { "type": "Block", "value": "*\n * Initialise Help instance\n ", "range": [ - 3233, - 3276 + 3641, + 3684 ], "loc": { "start": { - "line": 108, + "line": 127, "column": 4 }, "end": { - "line": 110, + "line": 129, "column": 7 } } @@ -11646,16 +13153,16 @@ "type": "Line", "value": "help button is added to defined element", "range": [ - 3463, - 3504 + 3927, + 3968 ], "loc": { "start": { - "line": 121, + "line": 142, "column": 8 }, "end": { - "line": 121, + "line": 142, "column": 49 } } @@ -11664,16 +13171,16 @@ "type": "Block", "value": "* @inherited ", "range": [ - 4986, - 5003 + 5450, + 5467 ], "loc": { "start": { - "line": 163, + "line": 184, "column": 8 }, "end": { - "line": 163, + "line": 184, "column": 25 } } @@ -11682,16 +13189,16 @@ "type": "Block", "value": "*\n * Toggle help pop-up\n ", "range": [ - 5048, - 5085 + 5512, + 5549 ], "loc": { "start": { - "line": 167, + "line": 188, "column": 4 }, "end": { - "line": 169, + "line": 190, "column": 7 } } @@ -11700,16 +13207,16 @@ "type": "Line", "value": " check only if explicitily set to false as in this case undefined", "range": [ - 5109, - 5176 + 5573, + 5640 ], "loc": { "start": { - "line": 171, + "line": 192, "column": 8 }, "end": { - "line": 171, + "line": 192, "column": 75 } } @@ -11718,34 +13225,52 @@ "type": "Line", "value": " signifies the help feature is enabled by default", "range": [ - 5185, - 5236 + 5649, + 5700 ], "loc": { "start": { - "line": 172, + "line": 193, "column": 8 }, "end": { - "line": 172, + "line": 193, "column": 59 } } }, + { + "type": "Line", + "value": " ensure mouseup event handler is removed", + "range": [ + 5777, + 5819 + ], + "loc": { + "start": { + "line": 197, + "column": 8 + }, + "end": { + "line": 197, + "column": 50 + } + } + }, { "type": "Block", "value": "*\n * Remove help UI\n ", "range": [ - 5541, - 5574 + 6168, + 6201 ], "loc": { "start": { - "line": 184, + "line": 209, "column": 4 }, "end": { - "line": 186, + "line": 211, "column": 7 } } diff --git a/docs/class/src/emitter.js~Emitter.html b/docs/class/src/emitter.js~Emitter.html index ebc57687..e126301b 100644 --- a/docs/class/src/emitter.js~Emitter.html +++ b/docs/class/src/emitter.js~Emitter.html @@ -3,7 +3,7 @@ - Emitter | tablefilter v0.4.26 API Document + Emitter | tablefilter v0.4.27 API Document diff --git a/docs/class/src/extensions/advancedGrid/adapterEzEditTable.js~AdapterEzEditTable.html b/docs/class/src/extensions/advancedGrid/adapterEzEditTable.js~AdapterEzEditTable.html index c9d5275d..ec2b95ba 100644 --- a/docs/class/src/extensions/advancedGrid/adapterEzEditTable.js~AdapterEzEditTable.html +++ b/docs/class/src/extensions/advancedGrid/adapterEzEditTable.js~AdapterEzEditTable.html @@ -3,7 +3,7 @@ - AdapterEzEditTable | tablefilter v0.4.26 API Document + AdapterEzEditTable | tablefilter v0.4.27 API Document diff --git a/docs/class/src/extensions/colOps/colOps.js~ColOps.html b/docs/class/src/extensions/colOps/colOps.js~ColOps.html index 12919547..946784d8 100644 --- a/docs/class/src/extensions/colOps/colOps.js~ColOps.html +++ b/docs/class/src/extensions/colOps/colOps.js~ColOps.html @@ -3,7 +3,7 @@ - ColOps | tablefilter v0.4.26 API Document + ColOps | tablefilter v0.4.27 API Document diff --git a/docs/class/src/extensions/colsVisibility/colsVisibility.js~ColsVisibility.html b/docs/class/src/extensions/colsVisibility/colsVisibility.js~ColsVisibility.html index 1580ccd7..85c2a275 100644 --- a/docs/class/src/extensions/colsVisibility/colsVisibility.js~ColsVisibility.html +++ b/docs/class/src/extensions/colsVisibility/colsVisibility.js~ColsVisibility.html @@ -3,7 +3,7 @@ - ColsVisibility | tablefilter v0.4.26 API Document + ColsVisibility | tablefilter v0.4.27 API Document diff --git a/docs/class/src/extensions/filtersVisibility/filtersVisibility.js~FiltersVisibility.html b/docs/class/src/extensions/filtersVisibility/filtersVisibility.js~FiltersVisibility.html index 1355a2e3..c1a8e347 100644 --- a/docs/class/src/extensions/filtersVisibility/filtersVisibility.js~FiltersVisibility.html +++ b/docs/class/src/extensions/filtersVisibility/filtersVisibility.js~FiltersVisibility.html @@ -3,7 +3,7 @@ - FiltersVisibility | tablefilter v0.4.26 API Document + FiltersVisibility | tablefilter v0.4.27 API Document diff --git a/docs/class/src/extensions/sort/adapterSortabletable.js~AdapterSortableTable.html b/docs/class/src/extensions/sort/adapterSortabletable.js~AdapterSortableTable.html index c4fc7cbe..c680d9fb 100644 --- a/docs/class/src/extensions/sort/adapterSortabletable.js~AdapterSortableTable.html +++ b/docs/class/src/extensions/sort/adapterSortabletable.js~AdapterSortableTable.html @@ -3,7 +3,7 @@ - AdapterSortableTable | tablefilter v0.4.26 API Document + AdapterSortableTable | tablefilter v0.4.27 API Document diff --git a/docs/class/src/feature.js~Feature.html b/docs/class/src/feature.js~Feature.html index 34a0a92c..778d9517 100644 --- a/docs/class/src/feature.js~Feature.html +++ b/docs/class/src/feature.js~Feature.html @@ -3,7 +3,7 @@ - Feature | tablefilter v0.4.26 API Document + Feature | tablefilter v0.4.27 API Document diff --git a/docs/class/src/modules/alternateRows.js~AlternateRows.html b/docs/class/src/modules/alternateRows.js~AlternateRows.html index 9c484978..2167c62b 100644 --- a/docs/class/src/modules/alternateRows.js~AlternateRows.html +++ b/docs/class/src/modules/alternateRows.js~AlternateRows.html @@ -3,7 +3,7 @@ - AlternateRows | tablefilter v0.4.26 API Document + AlternateRows | tablefilter v0.4.27 API Document diff --git a/docs/class/src/modules/checkList.js~CheckList.html b/docs/class/src/modules/checkList.js~CheckList.html index 80c5f81e..d71881de 100644 --- a/docs/class/src/modules/checkList.js~CheckList.html +++ b/docs/class/src/modules/checkList.js~CheckList.html @@ -3,7 +3,7 @@ - CheckList | tablefilter v0.4.26 API Document + CheckList | tablefilter v0.4.27 API Document diff --git a/docs/class/src/modules/clearButton.js~ClearButton.html b/docs/class/src/modules/clearButton.js~ClearButton.html index d4da63be..4b971e1f 100644 --- a/docs/class/src/modules/clearButton.js~ClearButton.html +++ b/docs/class/src/modules/clearButton.js~ClearButton.html @@ -3,7 +3,7 @@ - ClearButton | tablefilter v0.4.26 API Document + ClearButton | tablefilter v0.4.27 API Document diff --git a/docs/class/src/modules/dateType.js~DateType.html b/docs/class/src/modules/dateType.js~DateType.html index c55eb7ec..8dd728df 100644 --- a/docs/class/src/modules/dateType.js~DateType.html +++ b/docs/class/src/modules/dateType.js~DateType.html @@ -3,7 +3,7 @@ - DateType | tablefilter v0.4.26 API Document + DateType | tablefilter v0.4.27 API Document diff --git a/docs/class/src/modules/dropdown.js~Dropdown.html b/docs/class/src/modules/dropdown.js~Dropdown.html index 50b793cc..38317fc1 100644 --- a/docs/class/src/modules/dropdown.js~Dropdown.html +++ b/docs/class/src/modules/dropdown.js~Dropdown.html @@ -3,7 +3,7 @@ - Dropdown | tablefilter v0.4.26 API Document + Dropdown | tablefilter v0.4.27 API Document diff --git a/docs/class/src/modules/gridLayout.js~GridLayout.html b/docs/class/src/modules/gridLayout.js~GridLayout.html index f007edd4..2db36b1e 100644 --- a/docs/class/src/modules/gridLayout.js~GridLayout.html +++ b/docs/class/src/modules/gridLayout.js~GridLayout.html @@ -3,7 +3,7 @@ - GridLayout | tablefilter v0.4.26 API Document + GridLayout | tablefilter v0.4.27 API Document diff --git a/docs/class/src/modules/hash.js~Hash.html b/docs/class/src/modules/hash.js~Hash.html index ccdc4ef3..4b2a2c29 100644 --- a/docs/class/src/modules/hash.js~Hash.html +++ b/docs/class/src/modules/hash.js~Hash.html @@ -3,7 +3,7 @@ - Hash | tablefilter v0.4.26 API Document + Hash | tablefilter v0.4.27 API Document diff --git a/docs/class/src/modules/help.js~Help.html b/docs/class/src/modules/help.js~Help.html index 32c66446..1cb886bd 100644 --- a/docs/class/src/modules/help.js~Help.html +++ b/docs/class/src/modules/help.js~Help.html @@ -3,7 +3,7 @@ - Help | tablefilter v0.4.26 API Document + Help | tablefilter v0.4.27 API Document @@ -120,13 +120,13 @@
-
import {Help} from 'tablefilter/src/modules/help.js'
+
import {Help} from 'tablefilter/src/modules/help.js'
public class - | source + | source
@@ -214,7 +214,7 @@
-

Stores button DOM element

+

Button DOM element

@@ -318,7 +318,7 @@
-

Stores help container DOM element

+

Help container DOM element

@@ -932,7 +932,7 @@ - source + source @@ -993,14 +993,14 @@ - source + source -

Stores button DOM element

+

Button DOM element

@@ -1034,7 +1034,7 @@ - source + source @@ -1075,7 +1075,7 @@ - source + source @@ -1116,7 +1116,7 @@ - source + source @@ -1157,14 +1157,14 @@ - source + source -

Stores help container DOM element

+

Help container DOM element

@@ -1198,7 +1198,7 @@ - source + source @@ -1239,7 +1239,7 @@ - source + source @@ -1280,7 +1280,7 @@ - source + source @@ -1321,7 +1321,7 @@ - source + source @@ -1361,7 +1361,7 @@ - source + source @@ -1402,7 +1402,7 @@ - source + source @@ -1443,7 +1443,7 @@ - source + source @@ -1487,7 +1487,7 @@ - source + source @@ -1528,7 +1528,7 @@ - source + source @@ -1569,7 +1569,7 @@ - source + source diff --git a/docs/class/src/modules/highlightKeywords.js~HighlightKeyword.html b/docs/class/src/modules/highlightKeywords.js~HighlightKeyword.html index 3d9bb3af..d810c27f 100644 --- a/docs/class/src/modules/highlightKeywords.js~HighlightKeyword.html +++ b/docs/class/src/modules/highlightKeywords.js~HighlightKeyword.html @@ -3,7 +3,7 @@ - HighlightKeyword | tablefilter v0.4.26 API Document + HighlightKeyword | tablefilter v0.4.27 API Document diff --git a/docs/class/src/modules/loader.js~Loader.html b/docs/class/src/modules/loader.js~Loader.html index b365ef9a..6bb6bb66 100644 --- a/docs/class/src/modules/loader.js~Loader.html +++ b/docs/class/src/modules/loader.js~Loader.html @@ -3,7 +3,7 @@ - Loader | tablefilter v0.4.26 API Document + Loader | tablefilter v0.4.27 API Document diff --git a/docs/class/src/modules/noResults.js~NoResults.html b/docs/class/src/modules/noResults.js~NoResults.html index 3c59f277..68916650 100644 --- a/docs/class/src/modules/noResults.js~NoResults.html +++ b/docs/class/src/modules/noResults.js~NoResults.html @@ -3,7 +3,7 @@ - NoResults | tablefilter v0.4.26 API Document + NoResults | tablefilter v0.4.27 API Document diff --git a/docs/class/src/modules/paging.js~Paging.html b/docs/class/src/modules/paging.js~Paging.html index 0c37469a..376e4fa3 100644 --- a/docs/class/src/modules/paging.js~Paging.html +++ b/docs/class/src/modules/paging.js~Paging.html @@ -3,7 +3,7 @@ - Paging | tablefilter v0.4.26 API Document + Paging | tablefilter v0.4.27 API Document diff --git a/docs/class/src/modules/popupFilter.js~PopupFilter.html b/docs/class/src/modules/popupFilter.js~PopupFilter.html index 6695b895..04ee5915 100644 --- a/docs/class/src/modules/popupFilter.js~PopupFilter.html +++ b/docs/class/src/modules/popupFilter.js~PopupFilter.html @@ -3,7 +3,7 @@ - PopupFilter | tablefilter v0.4.26 API Document + PopupFilter | tablefilter v0.4.27 API Document diff --git a/docs/class/src/modules/rowsCounter.js~RowsCounter.html b/docs/class/src/modules/rowsCounter.js~RowsCounter.html index 40605dcc..8e0e330c 100644 --- a/docs/class/src/modules/rowsCounter.js~RowsCounter.html +++ b/docs/class/src/modules/rowsCounter.js~RowsCounter.html @@ -3,7 +3,7 @@ - RowsCounter | tablefilter v0.4.26 API Document + RowsCounter | tablefilter v0.4.27 API Document diff --git a/docs/class/src/modules/state.js~State.html b/docs/class/src/modules/state.js~State.html index 9b934965..40d66bf0 100644 --- a/docs/class/src/modules/state.js~State.html +++ b/docs/class/src/modules/state.js~State.html @@ -3,7 +3,7 @@ - State | tablefilter v0.4.26 API Document + State | tablefilter v0.4.27 API Document diff --git a/docs/class/src/modules/statusBar.js~StatusBar.html b/docs/class/src/modules/statusBar.js~StatusBar.html index bf6b3bf9..9c1900f9 100644 --- a/docs/class/src/modules/statusBar.js~StatusBar.html +++ b/docs/class/src/modules/statusBar.js~StatusBar.html @@ -3,7 +3,7 @@ - StatusBar | tablefilter v0.4.26 API Document + StatusBar | tablefilter v0.4.27 API Document diff --git a/docs/class/src/modules/storage.js~Storage.html b/docs/class/src/modules/storage.js~Storage.html index 5717bdcf..28b9a429 100644 --- a/docs/class/src/modules/storage.js~Storage.html +++ b/docs/class/src/modules/storage.js~Storage.html @@ -3,7 +3,7 @@ - Storage | tablefilter v0.4.26 API Document + Storage | tablefilter v0.4.27 API Document diff --git a/docs/class/src/tablefilter.js~TableFilter.html b/docs/class/src/tablefilter.js~TableFilter.html index bfb9d98d..d26e5fea 100644 --- a/docs/class/src/tablefilter.js~TableFilter.html +++ b/docs/class/src/tablefilter.js~TableFilter.html @@ -3,7 +3,7 @@ - TableFilter | tablefilter v0.4.26 API Document + TableFilter | tablefilter v0.4.27 API Document diff --git a/docs/dump.json b/docs/dump.json index defb5818..735e759f 100644 --- a/docs/dump.json +++ b/docs/dump.json @@ -1307,7 +1307,7 @@ "access": null, "description": null, "lineNumber": 1, - "content": "import {root} from './root';\n\n/**\n * DOM event utilities\n */\n\n/**\n * Add event handler for specified event on passed element\n *\n * @param {DOMElement} obj Element\n * @param {String} type Event type\n * @param {Function} Handler\n * @param {Boolean} capture Specifiy whether the event should be executed in\n * the capturing or in the bubbling phase\n */\nexport const addEvt = (obj, type, func, capture) => {\n if (obj.addEventListener) {\n obj.addEventListener(type, func, capture);\n }\n else if (obj.attachEvent) {\n obj.attachEvent('on' + type, func);\n } else {\n obj['on' + type] = func;\n }\n};\n\n/**\n * Remove event handler for specified event on passed element\n *\n * @param {DOMElement} obj Element\n * @param {String} type Event type\n * @param {Function} Handler\n * @param {Boolean} capture Specifiy whether the event should be executed in\n * the capturing or in the bubbling phase\n */\nexport const removeEvt = (obj, type, func, capture) => {\n if (obj.detachEvent) {\n obj.detachEvent('on' + type, func);\n }\n else if (obj.removeEventListener) {\n obj.removeEventListener(type, func, capture);\n } else {\n obj['on' + type] = null;\n }\n};\n\n/**\n * Prevents further propagation of the current event in the bubbling phase\n *\n * @param {Event} evt Event on the DOM\n */\nexport const stopEvt = evt =>{\n if (!evt) {\n evt = root.event;\n }\n if (evt.stopPropagation) {\n evt.stopPropagation();\n } else {\n evt.cancelBubble = true;\n }\n};\n\n/**\n * Cancels the event if it is cancelable, without stopping further\n * propagation of the event.\n *\n * @param {Event} evt Event on the DOM\n */\nexport const cancelEvt = evt => {\n if (!evt) {\n evt = root.event;\n }\n if (evt.preventDefault) {\n evt.preventDefault();\n } else {\n evt.returnValue = false;\n }\n};\n\n/**\n * Reference to the object that dispatched the event\n *\n * @param {Event} evt Event on the DOM\n * @returns {DOMElement}\n */\nexport const targetEvt = evt => {\n if (!evt) {\n evt = root.event;\n }\n return evt.target || evt.srcElement;\n};\n\n/**\n * Returns the Unicode value of pressed key\n *\n * @param {Event} evt Event on the DOM\n * @returns {Number}\n */\nexport const keyCode = evt => {\n return evt.charCode ? evt.charCode :\n (evt.keyCode ? evt.keyCode : (evt.which ? evt.which : 0));\n};\n" + "content": "import {root} from './root';\n\n/**\n * DOM event utilities\n */\n\n/**\n * Add event handler for specified event on passed element\n *\n * @param {DOMElement} obj Element\n * @param {String} type Event type\n * @param {Function} Handler\n * @param {Boolean} capture Specifiy whether the event should be executed in\n * the capturing or in the bubbling phase\n */\nexport const addEvt = (obj, type, func, capture) => {\n if (obj.addEventListener) {\n obj.addEventListener(type, func, capture);\n }\n else if (obj.attachEvent) {\n obj.attachEvent('on' + type, func);\n } else {\n obj['on' + type] = func;\n }\n};\n\n/**\n * Remove event handler for specified event on passed element\n *\n * @param {DOMElement} obj Element\n * @param {String} type Event type\n * @param {Function} Handler\n * @param {Boolean} capture Specifiy whether the event should be executed in\n * the capturing or in the bubbling phase\n */\nexport const removeEvt = (obj, type, func, capture) => {\n if (obj.removeEventListener) {\n obj.removeEventListener(type, func, capture);\n } else if (obj.detachEvent) {\n obj.detachEvent('on' + type, func);\n } else {\n obj['on' + type] = null;\n }\n};\n\n/**\n * Prevents further propagation of the current event in the bubbling phase\n *\n * @param {Event} evt Event on the DOM\n */\nexport const stopEvt = (evt) => {\n if (!evt) {\n evt = root.event;\n }\n if (evt.stopPropagation) {\n evt.stopPropagation();\n } else {\n evt.cancelBubble = true;\n }\n};\n\n/**\n * Cancels the event if it is cancelable, without stopping further\n * propagation of the event.\n *\n * @param {Event} evt Event on the DOM\n */\nexport const cancelEvt = (evt) => {\n if (!evt) {\n evt = root.event;\n }\n if (evt.preventDefault) {\n evt.preventDefault();\n } else {\n evt.returnValue = false;\n }\n};\n\n/**\n * Reference to the object that dispatched the event\n *\n * @param {Event} evt Event on the DOM\n * @returns {DOMElement}\n */\nexport const targetEvt = (evt) => {\n if (!evt) {\n evt = root.event;\n }\n return evt.target || evt.srcElement;\n};\n\n/**\n * Returns the Unicode value of pressed key\n *\n * @param {Event} evt Event on the DOM\n * @returns {Number}\n */\nexport const keyCode = (evt) => {\n return evt.charCode ? evt.charCode :\n (evt.keyCode ? evt.keyCode : (evt.which ? evt.which : 0));\n};\n" }, { "__docId__": 46, @@ -1446,7 +1446,7 @@ "importPath": "tablefilter/src/event.js", "importStyle": "{stopEvt}", "description": "Prevents further propagation of the current event in the bubbling phase", - "lineNumber": 52, + "lineNumber": 51, "params": [ { "nullable": null, @@ -1478,7 +1478,7 @@ "importPath": "tablefilter/src/event.js", "importStyle": "{cancelEvt}", "description": "Cancels the event if it is cancelable, without stopping further\npropagation of the event.", - "lineNumber": 69, + "lineNumber": 68, "params": [ { "nullable": null, @@ -1510,7 +1510,7 @@ "importPath": "tablefilter/src/event.js", "importStyle": "{targetEvt}", "description": "Reference to the object that dispatched the event", - "lineNumber": 86, + "lineNumber": 85, "unknown": [ { "tagName": "@returns", @@ -1556,7 +1556,7 @@ "importPath": "tablefilter/src/event.js", "importStyle": "{keyCode}", "description": "Returns the Unicode value of pressed key", - "lineNumber": 99, + "lineNumber": 98, "unknown": [ { "tagName": "@returns", @@ -9181,7 +9181,7 @@ "access": null, "description": null, "lineNumber": 1, - "content": "import {Feature} from '../feature';\nimport {createElm, createText, elm, removeElm} from '../dom';\nimport {addEvt} from '../event';\nimport {NONE} from '../const';\n\nconst WIKI_URL = 'https://github.com/koalyptus/TableFilter/wiki/' +\n '4.-Filter-operators';\nconst WEBSITE_URL = 'http://koalyptus.github.io/TableFilter/';\n\n/**\n * Help UI component\n */\nexport class Help extends Feature {\n\n /**\n * Creates an instance of Help\n * @param {TableFilter} tf TableFilter instance\n */\n constructor(tf) {\n super(tf, 'help');\n\n let f = this.config;\n\n /**\n * ID of main custom container element\n * @type {String}\n */\n this.tgtId = f.help_instructions_target_id || null;\n\n /**\n * ID of custom container element for instructions\n * @type {String}\n */\n this.contTgtId = f.help_instructions_container_target_id ||\n null;\n\n /**\n * Instructions text (accepts HTML)\n * @type {String}\n */\n this.instrText = f.help_instructions_text ?\n f.help_instructions_text :\n 'Use the filters above each column to filter and limit table ' +\n 'data. Advanced searches can be performed by using the following ' +\n 'operators:
<, <=, >, ' +\n '>=, =, *, !, {, }, ' +\n '||,&&, [empty], [nonempty], ' +\n 'rgx:
' +\n 'Learn more
';\n\n /**\n * Instructions HTML\n * @type {String}\n */\n this.instrHtml = f.help_instructions_html || null;\n\n /**\n * Help button text ('?')\n * @type {String}\n */\n this.btnText = f.help_instructions_btn_text || '?';\n\n /**\n * Custom help button HTML\n * @type {String}\n */\n this.btnHtml = f.help_instructions_btn_html || null;\n\n /**\n * Css class for help button\n * @type {String}\n */\n this.btnCssClass = f.help_instructions_btn_css_class || 'helpBtn';\n\n /**\n * Css class for help container element\n * @type {String}\n */\n this.contCssClass = f.help_instructions_container_css_class ||\n 'helpCont';\n\n /**\n * Stores button DOM element\n * @type {DOMElement}\n */\n this.btn = null;\n\n /**\n * Stores help container DOM element\n * @type {DOMElement}\n */\n this.cont = null;\n\n /**\n * Default HTML appended to instructions text\n * @type {String}\n */\n this.defaultHtml = '

TableFilter ' +\n 'v' + tf.version + '

' + '' + WEBSITE_URL + '' +\n '
©2015-' + tf.year + ' {AUTHOR}' +\n '
' +\n 'Close
';\n\n this.emitter.on(['init-help'], () => this.init());\n }\n\n /**\n * Initialise Help instance\n */\n init() {\n if (this.initialized) {\n return;\n }\n\n let tf = this.tf;\n\n let btn = createElm('span');\n let cont = createElm('div');\n\n //help button is added to defined element\n if (!this.tgtId) {\n tf.setToolbar();\n }\n let targetEl = !this.tgtId ? tf.rDiv : elm(this.tgtId);\n targetEl.appendChild(btn);\n\n let divContainer = !this.contTgtId ? btn : elm(this.contTgtId);\n\n if (!this.btnHtml) {\n divContainer.appendChild(cont);\n let helplink = createElm('a', ['href', 'javascript:void(0);']);\n helplink.className = this.btnCssClass;\n helplink.appendChild(createText(this.btnText));\n btn.appendChild(helplink);\n addEvt(helplink, 'click', () => this.toggle());\n } else {\n btn.innerHTML = this.btnHtml;\n let helpEl = btn.firstChild;\n addEvt(helpEl, 'click', () => this.toggle());\n divContainer.appendChild(cont);\n }\n\n if (!this.instrHtml) {\n cont.innerHTML = this.instrText;\n cont.className = this.contCssClass;\n addEvt(cont, 'dblclick', () => this.toggle());\n } else {\n if (this.contTgtId) {\n divContainer.appendChild(cont);\n }\n cont.innerHTML = this.instrHtml;\n if (!this.contTgtId) {\n cont.className = this.contCssClass;\n addEvt(cont, 'dblclick', () => this.toggle());\n }\n }\n cont.innerHTML += this.defaultHtml;\n addEvt(cont, 'click', () => this.toggle());\n\n this.cont = cont;\n this.btn = btn;\n /** @inherited */\n this.initialized = true;\n }\n\n /**\n * Toggle help pop-up\n */\n toggle() {\n // check only if explicitily set to false as in this case undefined\n // signifies the help feature is enabled by default\n if (this.enabled === false) {\n return;\n }\n let divDisplay = this.cont.style.display;\n if (divDisplay === '' || divDisplay === NONE) {\n this.cont.style.display = 'inline';\n } else {\n this.cont.style.display = NONE;\n }\n }\n\n /**\n * Remove help UI\n */\n destroy() {\n if (!this.initialized) {\n return;\n }\n removeElm(this.btn);\n this.btn = null;\n\n removeElm(this.cont);\n this.cont = null;\n\n this.initialized = false;\n }\n\n}\n" + "content": "import {Feature} from '../feature';\nimport {createElm, createText, elm, removeElm} from '../dom';\nimport {addEvt, targetEvt, removeEvt} from '../event';\nimport {NONE} from '../const';\nimport {root} from '../root';\n\nconst WIKI_URL = 'https://github.com/koalyptus/TableFilter/wiki/' +\n '4.-Filter-operators';\nconst WEBSITE_URL = 'http://koalyptus.github.io/TableFilter/';\n\n/**\n * Help UI component\n */\nexport class Help extends Feature {\n\n /**\n * Creates an instance of Help\n * @param {TableFilter} tf TableFilter instance\n */\n constructor(tf) {\n super(tf, 'help');\n\n let f = this.config;\n\n /**\n * ID of main custom container element\n * @type {String}\n */\n this.tgtId = f.help_instructions_target_id || null;\n\n /**\n * ID of custom container element for instructions\n * @type {String}\n */\n this.contTgtId = f.help_instructions_container_target_id ||\n null;\n\n /**\n * Instructions text (accepts HTML)\n * @type {String}\n */\n this.instrText = f.help_instructions_text ?\n f.help_instructions_text :\n 'Use the filters above each column to filter and limit table ' +\n 'data. Advanced searches can be performed by using the following ' +\n 'operators:
<, <=, >, ' +\n '>=, =, *, !, {, }, ' +\n '||,&&, [empty], [nonempty], ' +\n 'rgx:
' +\n 'Learn more
';\n\n /**\n * Instructions HTML\n * @type {String}\n */\n this.instrHtml = f.help_instructions_html || null;\n\n /**\n * Help button text ('?')\n * @type {String}\n */\n this.btnText = f.help_instructions_btn_text || '?';\n\n /**\n * Custom help button HTML\n * @type {String}\n */\n this.btnHtml = f.help_instructions_btn_html || null;\n\n /**\n * Css class for help button\n * @type {String}\n */\n this.btnCssClass = f.help_instructions_btn_css_class || 'helpBtn';\n\n /**\n * Css class for help container element\n * @type {String}\n */\n this.contCssClass = f.help_instructions_container_css_class ||\n 'helpCont';\n\n /**\n * Button DOM element\n * @type {DOMElement}\n */\n this.btn = null;\n\n /**\n * Help container DOM element\n * @type {DOMElement}\n */\n this.cont = null;\n\n /**\n * Bound mouseup wrapper\n * @private\n */\n this.boundMouseup = null;\n\n /**\n * Default HTML appended to instructions text\n * @type {String}\n */\n this.defaultHtml = '

TableFilter ' +\n 'v' + tf.version + '

' + '' + WEBSITE_URL + '' +\n '
©2015-' + tf.year + ' {AUTHOR}' +\n '
' +\n 'Close
';\n\n this.emitter.on(['init-help'], () => this.init());\n }\n\n /**\n * Mouse-up event handler handling popup auto-close behaviour\n * @private\n */\n onMouseup(evt) {\n let targetElm = targetEvt(evt);\n if (targetElm !== this.cont) {\n this.toggle();\n }\n return;\n }\n\n /**\n * Initialise Help instance\n */\n init() {\n if (this.initialized) {\n return;\n }\n\n let tf = this.tf;\n\n let btn = createElm('span');\n let cont = createElm('div');\n\n this.boundMouseup = this.onMouseup.bind(this);\n\n //help button is added to defined element\n if (!this.tgtId) {\n tf.setToolbar();\n }\n let targetEl = !this.tgtId ? tf.rDiv : elm(this.tgtId);\n targetEl.appendChild(btn);\n\n let divContainer = !this.contTgtId ? btn : elm(this.contTgtId);\n\n if (!this.btnHtml) {\n divContainer.appendChild(cont);\n let helplink = createElm('a', ['href', 'javascript:void(0);']);\n helplink.className = this.btnCssClass;\n helplink.appendChild(createText(this.btnText));\n btn.appendChild(helplink);\n addEvt(helplink, 'click', () => this.toggle());\n } else {\n btn.innerHTML = this.btnHtml;\n let helpEl = btn.firstChild;\n addEvt(helpEl, 'click', () => this.toggle());\n divContainer.appendChild(cont);\n }\n\n if (!this.instrHtml) {\n cont.innerHTML = this.instrText;\n cont.className = this.contCssClass;\n addEvt(cont, 'dblclick', () => this.toggle());\n } else {\n if (this.contTgtId) {\n divContainer.appendChild(cont);\n }\n cont.innerHTML = this.instrHtml;\n if (!this.contTgtId) {\n cont.className = this.contCssClass;\n addEvt(cont, 'dblclick', () => this.toggle());\n }\n }\n cont.innerHTML += this.defaultHtml;\n addEvt(cont, 'click', () => this.toggle());\n\n this.cont = cont;\n this.btn = btn;\n /** @inherited */\n this.initialized = true;\n }\n\n /**\n * Toggle help pop-up\n */\n toggle() {\n // check only if explicitily set to false as in this case undefined\n // signifies the help feature is enabled by default\n if (this.enabled === false) {\n return;\n }\n // ensure mouseup event handler is removed\n removeEvt(root, 'mouseup', this.boundMouseup);\n\n let divDisplay = this.cont.style.display;\n if (divDisplay === '' || divDisplay === NONE) {\n this.cont.style.display = 'inline';\n addEvt(root, 'mouseup', this.boundMouseup);\n } else {\n this.cont.style.display = NONE;\n }\n }\n\n /**\n * Remove help UI\n */\n destroy() {\n if (!this.initialized) {\n return;\n }\n removeElm(this.btn);\n this.btn = null;\n\n removeElm(this.cont);\n this.cont = null;\n\n this.boundMouseup = null;\n\n this.initialized = false;\n }\n\n}\n" }, { "__docId__": 420, @@ -9196,7 +9196,7 @@ "importPath": "tablefilter/src/modules/help.js", "importStyle": null, "description": null, - "lineNumber": 6, + "lineNumber": 7, "undocument": true, "type": { "types": [ @@ -9217,7 +9217,7 @@ "importPath": "tablefilter/src/modules/help.js", "importStyle": null, "description": null, - "lineNumber": 8, + "lineNumber": 9, "undocument": true, "type": { "types": [ @@ -9238,7 +9238,7 @@ "importPath": "tablefilter/src/modules/help.js", "importStyle": "{Help}", "description": "Help UI component", - "lineNumber": 13, + "lineNumber": 14, "interface": false, "extends": [ "src/feature.js~Feature" @@ -9254,7 +9254,7 @@ "longname": "src/modules/help.js~Help#constructor", "access": null, "description": "Creates an instance of Help", - "lineNumber": 19, + "lineNumber": 20, "params": [ { "nullable": null, @@ -9279,7 +9279,7 @@ "longname": "src/modules/help.js~Help#tgtId", "access": null, "description": "ID of main custom container element", - "lineNumber": 28, + "lineNumber": 29, "type": { "nullable": null, "types": [ @@ -9299,7 +9299,7 @@ "longname": "src/modules/help.js~Help#contTgtId", "access": null, "description": "ID of custom container element for instructions", - "lineNumber": 34, + "lineNumber": 35, "type": { "nullable": null, "types": [ @@ -9319,7 +9319,7 @@ "longname": "src/modules/help.js~Help#instrText", "access": null, "description": "Instructions text (accepts HTML)", - "lineNumber": 41, + "lineNumber": 42, "type": { "nullable": null, "types": [ @@ -9339,7 +9339,7 @@ "longname": "src/modules/help.js~Help#instrHtml", "access": null, "description": "Instructions HTML", - "lineNumber": 55, + "lineNumber": 56, "type": { "nullable": null, "types": [ @@ -9359,7 +9359,7 @@ "longname": "src/modules/help.js~Help#btnText", "access": null, "description": "Help button text ('?')", - "lineNumber": 61, + "lineNumber": 62, "type": { "nullable": null, "types": [ @@ -9379,7 +9379,7 @@ "longname": "src/modules/help.js~Help#btnHtml", "access": null, "description": "Custom help button HTML", - "lineNumber": 67, + "lineNumber": 68, "type": { "nullable": null, "types": [ @@ -9399,7 +9399,7 @@ "longname": "src/modules/help.js~Help#btnCssClass", "access": null, "description": "Css class for help button", - "lineNumber": 73, + "lineNumber": 74, "type": { "nullable": null, "types": [ @@ -9419,7 +9419,7 @@ "longname": "src/modules/help.js~Help#contCssClass", "access": null, "description": "Css class for help container element", - "lineNumber": 79, + "lineNumber": 80, "type": { "nullable": null, "types": [ @@ -9438,8 +9438,8 @@ "memberof": "src/modules/help.js~Help", "longname": "src/modules/help.js~Help#btn", "access": null, - "description": "Stores button DOM element", - "lineNumber": 86, + "description": "Button DOM element", + "lineNumber": 87, "type": { "nullable": null, "types": [ @@ -9458,8 +9458,8 @@ "memberof": "src/modules/help.js~Help", "longname": "src/modules/help.js~Help#cont", "access": null, - "description": "Stores help container DOM element", - "lineNumber": 92, + "description": "Help container DOM element", + "lineNumber": 93, "type": { "nullable": null, "types": [ @@ -9474,12 +9474,29 @@ "kind": "member", "static": false, "variation": null, + "name": "boundMouseup", + "memberof": "src/modules/help.js~Help", + "longname": "src/modules/help.js~Help#boundMouseup", + "access": "private", + "description": "Bound mouseup wrapper", + "lineNumber": 99, + "type": { + "types": [ + "*" + ] + } + }, + { + "__docId__": 435, + "kind": "member", + "static": false, + "variation": null, "name": "defaultHtml", "memberof": "src/modules/help.js~Help", "longname": "src/modules/help.js~Help#defaultHtml", "access": null, "description": "Default HTML appended to instructions text", - "lineNumber": 98, + "lineNumber": 105, "type": { "nullable": null, "types": [ @@ -9490,7 +9507,28 @@ } }, { - "__docId__": 435, + "__docId__": 436, + "kind": "method", + "static": false, + "variation": null, + "name": "onMouseup", + "memberof": "src/modules/help.js~Help", + "longname": "src/modules/help.js~Help#onMouseup", + "access": "private", + "description": "Mouse-up event handler handling popup auto-close behaviour", + "lineNumber": 119, + "params": [ + { + "name": "evt", + "types": [ + "*" + ] + } + ], + "generator": false + }, + { + "__docId__": 437, "kind": "method", "static": false, "variation": null, @@ -9499,12 +9537,30 @@ "longname": "src/modules/help.js~Help#init", "access": null, "description": "Initialise Help instance", - "lineNumber": 111, + "lineNumber": 130, "params": [], "generator": false }, { - "__docId__": 436, + "__docId__": 438, + "kind": "member", + "static": false, + "variation": null, + "name": "boundMouseup", + "memberof": "src/modules/help.js~Help", + "longname": "src/modules/help.js~Help#boundMouseup", + "access": null, + "description": null, + "lineNumber": 140, + "undocument": true, + "type": { + "types": [ + "*" + ] + } + }, + { + "__docId__": 439, "kind": "member", "static": false, "variation": null, @@ -9513,7 +9569,7 @@ "longname": "src/modules/help.js~Help#cont", "access": null, "description": null, - "lineNumber": 161, + "lineNumber": 182, "undocument": true, "type": { "types": [ @@ -9522,7 +9578,7 @@ } }, { - "__docId__": 437, + "__docId__": 440, "kind": "member", "static": false, "variation": null, @@ -9531,7 +9587,7 @@ "longname": "src/modules/help.js~Help#btn", "access": null, "description": null, - "lineNumber": 162, + "lineNumber": 183, "undocument": true, "type": { "types": [ @@ -9540,7 +9596,7 @@ } }, { - "__docId__": 438, + "__docId__": 441, "kind": "member", "static": false, "variation": null, @@ -9549,7 +9605,7 @@ "longname": "src/modules/help.js~Help#initialized", "access": null, "description": null, - "lineNumber": 164, + "lineNumber": 185, "unknown": [ { "tagName": "@inherited", @@ -9563,7 +9619,7 @@ } }, { - "__docId__": 439, + "__docId__": 442, "kind": "method", "static": false, "variation": null, @@ -9572,12 +9628,12 @@ "longname": "src/modules/help.js~Help#toggle", "access": null, "description": "Toggle help pop-up", - "lineNumber": 170, + "lineNumber": 191, "params": [], "generator": false }, { - "__docId__": 440, + "__docId__": 443, "kind": "method", "static": false, "variation": null, @@ -9586,12 +9642,12 @@ "longname": "src/modules/help.js~Help#destroy", "access": null, "description": "Remove help UI", - "lineNumber": 187, + "lineNumber": 212, "params": [], "generator": false }, { - "__docId__": 441, + "__docId__": 444, "kind": "member", "static": false, "variation": null, @@ -9600,7 +9656,7 @@ "longname": "src/modules/help.js~Help#btn", "access": null, "description": null, - "lineNumber": 192, + "lineNumber": 217, "undocument": true, "type": { "types": [ @@ -9609,7 +9665,7 @@ } }, { - "__docId__": 442, + "__docId__": 445, "kind": "member", "static": false, "variation": null, @@ -9618,7 +9674,7 @@ "longname": "src/modules/help.js~Help#cont", "access": null, "description": null, - "lineNumber": 195, + "lineNumber": 220, "undocument": true, "type": { "types": [ @@ -9627,7 +9683,25 @@ } }, { - "__docId__": 443, + "__docId__": 446, + "kind": "member", + "static": false, + "variation": null, + "name": "boundMouseup", + "memberof": "src/modules/help.js~Help", + "longname": "src/modules/help.js~Help#boundMouseup", + "access": null, + "description": null, + "lineNumber": 222, + "undocument": true, + "type": { + "types": [ + "*" + ] + } + }, + { + "__docId__": 447, "kind": "member", "static": false, "variation": null, @@ -9636,7 +9710,7 @@ "longname": "src/modules/help.js~Help#initialized", "access": null, "description": null, - "lineNumber": 197, + "lineNumber": 224, "undocument": true, "type": { "types": [ @@ -9645,7 +9719,7 @@ } }, { - "__docId__": 444, + "__docId__": 448, "kind": "file", "static": true, "variation": null, @@ -9658,7 +9732,7 @@ "content": "import {createText, createElm, getText} from '../dom';\nimport {isArray} from '../types';\nimport {rgxEsc} from '../string';\n\n/**\n * Highlight matched keywords upon filtering\n *\n * @export\n * @class HighlightKeyword\n */\nexport class HighlightKeyword {\n\n /**\n * Creates an instance of HighlightKeyword\n * @param {TableFilter} tf TableFilter instance\n */\n constructor(tf) {\n let f = tf.config();\n\n /**\n * Css class for highlighted term\n * @type {String}\n */\n this.highlightCssClass = f.highlight_css_class || 'keyword';\n\n /**\n * TableFilter instance\n * @type {TableFilter}\n */\n this.tf = tf;\n\n /**\n * TableFilter's emitter instance\n * @type {Emitter}\n */\n this.emitter = tf.emitter;\n }\n\n /**\n * Initializes HighlightKeyword instance\n */\n init() {\n this.emitter.on(\n ['before-filtering', 'destroy'],\n () => this.unhighlightAll()\n );\n this.emitter.on(\n ['highlight-keyword'],\n (tf, cell, term) => this._processTerm(cell, term)\n );\n }\n\n /**\n * Highlight occurences of searched term in passed node\n * @param {Node} node\n * @param {String} term Searched term\n * @param {String} cssClass Css class name\n *\n * TODO: refactor this method\n */\n highlight(node, term, cssClass) {\n // Iterate into this nodes childNodes\n if (node.hasChildNodes) {\n let children = node.childNodes;\n for (let i = 0; i < children.length; i++) {\n this.highlight(children[i], term, cssClass);\n }\n }\n\n if (node.nodeType === 3) {\n let nodeVal = node.nodeValue.toLowerCase();\n let termIdx = nodeVal.indexOf(term.toLowerCase());\n\n if (termIdx !== -1) {\n let pn = node.parentNode;\n if (pn && pn.className !== cssClass) {\n // term not highlighted yet\n let nv = node.nodeValue,\n // Create a load of replacement nodes\n before = createText(nv.substr(0, termIdx)),\n value = nv.substr(termIdx, term.length),\n after = createText(nv.substr(termIdx + term.length)),\n text = createText(value),\n container = createElm('span');\n container.className = cssClass;\n container.appendChild(text);\n pn.insertBefore(before, node);\n pn.insertBefore(container, node);\n pn.insertBefore(after, node);\n pn.removeChild(node);\n }\n }\n }\n }\n\n /**\n * Removes highlight to nodes matching passed string\n * @param {String} term\n * @param {String} cssClass Css class to remove\n */\n unhighlight(term, cssClass) {\n let highlightedNodes = this.tf.tbl.querySelectorAll(`.${cssClass}`);\n for (let i = 0; i < highlightedNodes.length; i++) {\n let n = highlightedNodes[i];\n let nodeVal = getText(n);\n\n if (nodeVal.toLowerCase().indexOf(term.toLowerCase()) !== -1) {\n let parentNode = n.parentNode;\n parentNode.replaceChild(createText(nodeVal), n);\n parentNode.normalize();\n }\n }\n }\n\n /**\n * Clear all occurrences of highlighted nodes\n */\n unhighlightAll() {\n if (!this.tf.highlightKeywords) {\n return;\n }\n // iterate filters values to unhighlight all values\n this.tf.getFiltersValue().forEach((val) => {\n if (isArray(val)) {\n val.forEach((item) =>\n this.unhighlight(item, this.highlightCssClass));\n } else {\n this.unhighlight(val, this.highlightCssClass);\n }\n });\n }\n\n /** Remove feature */\n destroy() {\n this.emitter.off(\n ['before-filtering', 'destroy'],\n () => this.unhighlightAll()\n );\n this.emitter.off(\n ['highlight-keyword'],\n (tf, cell, term) => this._processTerm(cell, term)\n );\n }\n\n /**\n * Ensure filtering operators are handled before highlighting any match\n * @param {any} Table cell to look searched term into\n * @param {any} Searched termIdx\n */\n _processTerm(cell, term) {\n let tf = this.tf;\n let reLk = new RegExp(rgxEsc(tf.lkOperator));\n let reEq = new RegExp(tf.eqOperator);\n let reSt = new RegExp(tf.stOperator);\n let reEn = new RegExp(tf.enOperator);\n let reLe = new RegExp(tf.leOperator);\n let reGe = new RegExp(tf.geOperator);\n let reL = new RegExp(tf.lwOperator);\n let reG = new RegExp(tf.grOperator);\n let reD = new RegExp(tf.dfOperator);\n\n term = term\n .replace(reLk, '')\n .replace(reEq, '')\n .replace(reSt, '')\n .replace(reEn, '');\n\n if (reLe.test(term) || reGe.test(term) || reL.test(term) ||\n reG.test(term) || reD.test(term)) {\n term = getText(cell);\n }\n\n if (term === '') {\n return;\n }\n\n this.highlight(cell, term, this.highlightCssClass);\n }\n}\n" }, { - "__docId__": 445, + "__docId__": 449, "kind": "class", "static": true, "variation": null, @@ -9684,7 +9758,7 @@ "interface": false }, { - "__docId__": 446, + "__docId__": 450, "kind": "constructor", "static": false, "variation": null, @@ -9709,7 +9783,7 @@ "generator": false }, { - "__docId__": 447, + "__docId__": 451, "kind": "member", "static": false, "variation": null, @@ -9729,7 +9803,7 @@ } }, { - "__docId__": 448, + "__docId__": 452, "kind": "member", "static": false, "variation": null, @@ -9749,7 +9823,7 @@ } }, { - "__docId__": 449, + "__docId__": 453, "kind": "member", "static": false, "variation": null, @@ -9769,7 +9843,7 @@ } }, { - "__docId__": 450, + "__docId__": 454, "kind": "method", "static": false, "variation": null, @@ -9783,7 +9857,7 @@ "generator": false }, { - "__docId__": 451, + "__docId__": 455, "kind": "method", "static": false, "variation": null, @@ -9828,7 +9902,7 @@ "generator": false }, { - "__docId__": 452, + "__docId__": 456, "kind": "method", "static": false, "variation": null, @@ -9863,7 +9937,7 @@ "generator": false }, { - "__docId__": 453, + "__docId__": 457, "kind": "method", "static": false, "variation": null, @@ -9877,7 +9951,7 @@ "generator": false }, { - "__docId__": 454, + "__docId__": 458, "kind": "method", "static": false, "variation": null, @@ -9891,7 +9965,7 @@ "generator": false }, { - "__docId__": 455, + "__docId__": 459, "kind": "method", "static": false, "variation": null, @@ -9926,7 +10000,7 @@ "generator": false }, { - "__docId__": 456, + "__docId__": 460, "kind": "file", "static": true, "variation": null, @@ -9939,7 +10013,7 @@ "content": "import {Feature} from '../feature';\nimport {createElm, createText, elm, removeElm} from '../dom';\nimport {isFn, EMPTY_FN} from '../types';\nimport {root} from '../root';\nimport {NONE} from '../const';\n\nconst EVENTS = [\n 'before-filtering',\n 'before-populating-filter',\n 'before-page-change',\n 'before-clearing-filters',\n 'before-page-length-change',\n 'before-reset-page',\n 'before-reset-page-length',\n 'before-loading-extensions',\n 'before-loading-themes'\n];\n\n/**\n * Activity indicator\n *\n * @export\n * @class Loader\n * @extends {Feature}\n */\nexport class Loader extends Feature {\n\n /**\n * Creates an instance of Loader.\n *\n * @param {TableFilter} tf TableFilter instance\n */\n constructor(tf) {\n super(tf, 'loader');\n\n let f = this.config;\n\n /**\n * ID of custom container element\n * @type {String}\n */\n this.targetId = f.loader_target_id || null;\n\n /**\n * Loader container DOM element\n * @type {DOMElement}\n */\n this.cont = null;\n\n /**\n * Text displayed when indicator is visible\n * @type {String}\n */\n this.text = f.loader_text || 'Loading...';\n\n /**\n * Custom HTML injected in Loader's container element\n * @type {String}\n */\n this.html = f.loader_html || null;\n\n /**\n * Css class for Loader's container element\n * @type {String}\n */\n this.cssClass = f.loader_css_class || 'loader';\n\n /**\n * Close delay in milliseconds\n * @type {Number}\n */\n this.closeDelay = 250;\n\n /**\n * Callback fired when loader is displayed\n * @type {Function}\n */\n this.onShow = isFn(f.on_show_loader) ?\n f.on_show_loader : EMPTY_FN;\n\n /**\n * Callback fired when loader is closed\n * @type {Function}\n */\n this.onHide = isFn(f.on_hide_loader) ? f.on_hide_loader : EMPTY_FN;\n }\n\n /**\n * Initializes Loader instance\n */\n init() {\n if (this.initialized) {\n return;\n }\n\n let tf = this.tf;\n let emitter = this.emitter;\n\n let containerDiv = createElm('div');\n containerDiv.className = this.cssClass;\n\n let targetEl = !this.targetId ?\n tf.tbl.parentNode : elm(this.targetId);\n if (!this.targetId) {\n targetEl.insertBefore(containerDiv, tf.tbl);\n } else {\n targetEl.appendChild(containerDiv);\n }\n this.cont = containerDiv;\n if (!this.html) {\n this.cont.appendChild(createText(this.text));\n } else {\n this.cont.innerHTML = this.html;\n }\n\n this.show(NONE);\n\n // Subscribe to events\n emitter.on(EVENTS, () => this.show(''));\n emitter.on(EVENTS, () => this.show(NONE));\n\n /**\n * @inherited\n */\n this.initialized = true;\n }\n\n /**\n * Shows or hides activity indicator\n * @param {String} Two possible values: '' or 'none'\n */\n show(p) {\n if (!this.isEnabled()) {\n return;\n }\n\n let displayLoader = () => {\n if (!this.cont) {\n return;\n }\n if (p !== NONE) {\n this.onShow(this);\n }\n this.cont.style.display = p;\n if (p === NONE) {\n this.onHide(this);\n }\n };\n\n let t = p === NONE ? this.closeDelay : 1;\n root.setTimeout(displayLoader, t);\n }\n\n /**\n * Removes feature\n */\n destroy() {\n if (!this.initialized) {\n return;\n }\n\n let emitter = this.emitter;\n\n removeElm(this.cont);\n this.cont = null;\n\n // Unsubscribe to events\n emitter.off(EVENTS, () => this.show(''));\n emitter.off(EVENTS, () => this.show(NONE));\n\n this.initialized = false;\n }\n}\n" }, { - "__docId__": 457, + "__docId__": 461, "kind": "variable", "static": true, "variation": null, @@ -9960,7 +10034,7 @@ } }, { - "__docId__": 458, + "__docId__": 462, "kind": "class", "static": true, "variation": null, @@ -9989,7 +10063,7 @@ ] }, { - "__docId__": 459, + "__docId__": 463, "kind": "constructor", "static": false, "variation": null, @@ -10014,7 +10088,7 @@ "generator": false }, { - "__docId__": 460, + "__docId__": 464, "kind": "member", "static": false, "variation": null, @@ -10034,7 +10108,7 @@ } }, { - "__docId__": 461, + "__docId__": 465, "kind": "member", "static": false, "variation": null, @@ -10054,7 +10128,7 @@ } }, { - "__docId__": 462, + "__docId__": 466, "kind": "member", "static": false, "variation": null, @@ -10074,7 +10148,7 @@ } }, { - "__docId__": 463, + "__docId__": 467, "kind": "member", "static": false, "variation": null, @@ -10094,7 +10168,7 @@ } }, { - "__docId__": 464, + "__docId__": 468, "kind": "member", "static": false, "variation": null, @@ -10114,7 +10188,7 @@ } }, { - "__docId__": 465, + "__docId__": 469, "kind": "member", "static": false, "variation": null, @@ -10134,7 +10208,7 @@ } }, { - "__docId__": 466, + "__docId__": 470, "kind": "member", "static": false, "variation": null, @@ -10154,7 +10228,7 @@ } }, { - "__docId__": 467, + "__docId__": 471, "kind": "member", "static": false, "variation": null, @@ -10174,7 +10248,7 @@ } }, { - "__docId__": 468, + "__docId__": 472, "kind": "method", "static": false, "variation": null, @@ -10188,7 +10262,7 @@ "generator": false }, { - "__docId__": 469, + "__docId__": 473, "kind": "member", "static": false, "variation": null, @@ -10206,7 +10280,7 @@ } }, { - "__docId__": 470, + "__docId__": 474, "kind": "member", "static": false, "variation": null, @@ -10229,7 +10303,7 @@ } }, { - "__docId__": 471, + "__docId__": 475, "kind": "method", "static": false, "variation": null, @@ -10254,7 +10328,7 @@ "generator": false }, { - "__docId__": 472, + "__docId__": 476, "kind": "method", "static": false, "variation": null, @@ -10268,7 +10342,7 @@ "generator": false }, { - "__docId__": 473, + "__docId__": 477, "kind": "member", "static": false, "variation": null, @@ -10286,7 +10360,7 @@ } }, { - "__docId__": 474, + "__docId__": 478, "kind": "member", "static": false, "variation": null, @@ -10304,7 +10378,7 @@ } }, { - "__docId__": 475, + "__docId__": 479, "kind": "file", "static": true, "variation": null, @@ -10317,7 +10391,7 @@ "content": "import {Feature} from '../feature';\nimport {createElm, elm, removeElm} from '../dom';\nimport {isEmpty, isFn, EMPTY_FN} from '../types';\nimport {NONE} from '../const';\n\n/**\n * UI when filtering yields no matches\n * @export\n * @class NoResults\n * @extends {Feature}\n */\nexport class NoResults extends Feature {\n\n /**\n * Creates an instance of NoResults\n * @param {TableFilter} tf TableFilter instance\n */\n constructor(tf) {\n super(tf, 'noResults');\n\n //configuration object\n let f = this.config.no_results_message;\n\n /**\n * Text (accepts HTML)\n * @type {String}\n */\n this.content = f.content || 'No results';\n\n /**\n * Custom container DOM element\n * @type {DOMElement}\n */\n this.customContainer = f.custom_container || null;\n\n /**\n * ID of custom container element\n * @type {String}\n */\n this.customContainerId = f.custom_container_id || null;\n\n /**\n * Indicates if UI is contained in a external element\n * @type {Boolean}\n * @private\n */\n this.isExternal = !isEmpty(this.customContainer) ||\n !isEmpty(this.customContainerId);\n\n /**\n * Css class assigned to container element\n * @type {String}\n */\n this.cssClass = f.css_class || 'no-results';\n\n /**\n * Stores container DOM element\n * @type {DOMElement}\n */\n this.cont = null;\n\n /**\n * Callback fired before the message is displayed\n * @type {Function}\n */\n this.onBeforeShow = isFn(f.on_before_show_msg) ?\n f.on_before_show_msg : EMPTY_FN;\n\n /**\n * Callback fired after the message is displayed\n * @type {Function}\n */\n this.onAfterShow = isFn(f.on_after_show_msg) ?\n f.on_after_show_msg : EMPTY_FN;\n\n /**\n * Callback fired before the message is hidden\n * @type {Function}\n */\n this.onBeforeHide = isFn(f.on_before_hide_msg) ?\n f.on_before_hide_msg : EMPTY_FN;\n\n /**\n * Callback fired after the message is hidden\n * @type {Function}\n */\n this.onAfterHide = isFn(f.on_after_hide_msg) ?\n f.on_after_hide_msg : EMPTY_FN;\n }\n\n /**\n * Initializes NoResults instance\n */\n init() {\n if (this.initialized) {\n return;\n }\n let tf = this.tf;\n let target = this.customContainer || elm(this.customContainerId) ||\n tf.tbl;\n\n //container\n let cont = createElm('div');\n cont.className = this.cssClass;\n cont.innerHTML = this.content;\n\n if (this.isExternal) {\n target.appendChild(cont);\n } else {\n target.parentNode.insertBefore(cont, target.nextSibling);\n }\n\n this.cont = cont;\n\n // subscribe to after-filtering event\n this.emitter.on(['after-filtering'], () => this.toggle());\n\n /**\n * @inherited\n */\n this.initialized = true;\n\n this.hide();\n }\n\n /**\n * Toggle no results message\n */\n toggle() {\n if (this.tf.getValidRowsNb() > 0) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Show no results message\n */\n show() {\n if (!this.initialized || !this.isEnabled()) {\n return;\n }\n this.onBeforeShow(this.tf, this);\n\n this.setWidth();\n this.cont.style.display = 'block';\n\n this.onAfterShow(this.tf, this);\n }\n\n /**\n * Hide no results message\n */\n hide() {\n if (!this.initialized || !this.isEnabled()) {\n return;\n }\n this.onBeforeHide(this.tf, this);\n\n this.cont.style.display = NONE;\n\n this.onAfterHide(this.tf, this);\n }\n\n /**\n * Sets no results container width\n * @private\n */\n setWidth() {\n if (!this.initialized || this.isExternal || !this.isEnabled()) {\n return;\n }\n let tf = this.tf;\n if (tf.gridLayout) {\n let gridLayout = tf.feature('gridLayout');\n this.cont.style.width = gridLayout.tblCont.clientWidth + 'px';\n } else {\n this.cont.style.width = (tf.tbl.tHead ? tf.tbl.tHead.clientWidth :\n tf.tbl.tBodies[0].clientWidth) + 'px';\n }\n }\n\n /**\n * Remove feature\n */\n destroy() {\n if (!this.initialized) {\n return;\n }\n removeElm(this.cont);\n this.cont = null;\n // unsubscribe to after-filtering event\n this.emitter.off(['after-filtering'], () => this.toggle());\n\n this.initialized = false;\n }\n}\n" }, { - "__docId__": 476, + "__docId__": 480, "kind": "class", "static": true, "variation": null, @@ -10346,7 +10420,7 @@ ] }, { - "__docId__": 477, + "__docId__": 481, "kind": "constructor", "static": false, "variation": null, @@ -10371,7 +10445,7 @@ "generator": false }, { - "__docId__": 478, + "__docId__": 482, "kind": "member", "static": false, "variation": null, @@ -10391,7 +10465,7 @@ } }, { - "__docId__": 479, + "__docId__": 483, "kind": "member", "static": false, "variation": null, @@ -10411,7 +10485,7 @@ } }, { - "__docId__": 480, + "__docId__": 484, "kind": "member", "static": false, "variation": null, @@ -10431,7 +10505,7 @@ } }, { - "__docId__": 481, + "__docId__": 485, "kind": "member", "static": false, "variation": null, @@ -10451,7 +10525,7 @@ } }, { - "__docId__": 482, + "__docId__": 486, "kind": "member", "static": false, "variation": null, @@ -10471,7 +10545,7 @@ } }, { - "__docId__": 483, + "__docId__": 487, "kind": "member", "static": false, "variation": null, @@ -10491,7 +10565,7 @@ } }, { - "__docId__": 484, + "__docId__": 488, "kind": "member", "static": false, "variation": null, @@ -10511,7 +10585,7 @@ } }, { - "__docId__": 485, + "__docId__": 489, "kind": "member", "static": false, "variation": null, @@ -10531,7 +10605,7 @@ } }, { - "__docId__": 486, + "__docId__": 490, "kind": "member", "static": false, "variation": null, @@ -10551,7 +10625,7 @@ } }, { - "__docId__": 487, + "__docId__": 491, "kind": "member", "static": false, "variation": null, @@ -10571,7 +10645,7 @@ } }, { - "__docId__": 488, + "__docId__": 492, "kind": "method", "static": false, "variation": null, @@ -10585,7 +10659,7 @@ "generator": false }, { - "__docId__": 489, + "__docId__": 493, "kind": "member", "static": false, "variation": null, @@ -10603,7 +10677,7 @@ } }, { - "__docId__": 490, + "__docId__": 494, "kind": "member", "static": false, "variation": null, @@ -10626,7 +10700,7 @@ } }, { - "__docId__": 491, + "__docId__": 495, "kind": "method", "static": false, "variation": null, @@ -10640,7 +10714,7 @@ "generator": false }, { - "__docId__": 492, + "__docId__": 496, "kind": "method", "static": false, "variation": null, @@ -10654,7 +10728,7 @@ "generator": false }, { - "__docId__": 493, + "__docId__": 497, "kind": "method", "static": false, "variation": null, @@ -10668,7 +10742,7 @@ "generator": false }, { - "__docId__": 494, + "__docId__": 498, "kind": "method", "static": false, "variation": null, @@ -10682,7 +10756,7 @@ "generator": false }, { - "__docId__": 495, + "__docId__": 499, "kind": "method", "static": false, "variation": null, @@ -10696,7 +10770,7 @@ "generator": false }, { - "__docId__": 496, + "__docId__": 500, "kind": "member", "static": false, "variation": null, @@ -10714,7 +10788,7 @@ } }, { - "__docId__": 497, + "__docId__": 501, "kind": "member", "static": false, "variation": null, @@ -10732,7 +10806,7 @@ } }, { - "__docId__": 498, + "__docId__": 502, "kind": "file", "static": true, "variation": null, @@ -10745,7 +10819,7 @@ "content": "import {Feature} from '../feature';\nimport {createElm, createOpt, createText, elm, removeElm} from '../dom';\nimport {isArray, isFn, isNull, EMPTY_FN} from '../types';\nimport {addEvt, keyCode, removeEvt} from '../event';\nimport {INPUT, SELECT, NONE, ENTER_KEY} from '../const';\n\n/**\n * Paging UI component\n * @export\n * @class Paging\n * @extends {Feature}\n */\nexport class Paging extends Feature {\n\n /**\n * Creates an instance of Paging\n * @param {TableFilter} tf TableFilter instance\n */\n constructor(tf) {\n super(tf, 'paging');\n\n // Configuration object\n var f = this.config;\n\n /**\n * Css class for the paging buttons (previous, next, etc.)\n * @type {String}\n */\n this.btnPageCssClass = f.paging_btn_css_class || 'pgInp';\n\n /**\n * Main select DOM element\n * @type {DOMElement}\n */\n this.pagingSlc = null;\n\n /**\n * Results per page select DOM element\n * @type {DOMElement}\n */\n this.resultsPerPageSlc = null;\n\n /**\n * ID of custom container element\n * @type {String}\n */\n this.pagingTgtId = f.paging_target_id || null;\n\n /**\n * Number of rows contained in a page\n * @type {Number}\n */\n this.pagingLength = !isNaN(f.paging_length) ? f.paging_length : 10;\n\n /**\n * ID of custom container element for the results per page selector\n * @type {String}\n */\n this.resultsPerPageTgtId = f.results_per_page_target_id || null;\n\n /**\n * Css class for the paging select element\n * @type {String}\n */\n this.pgSlcCssClass = f.paging_slc_css_class || 'pgSlc';\n\n /**\n * Css class for the paging input element\n * @type {String}\n */\n this.pgInpCssClass = f.paging_inp_css_class || 'pgNbInp';\n\n /**\n * Label and values for the results per page select, example of usage:\n * ['Records: ', [10,25,50,100]]\n * @type {Array}\n */\n this.resultsPerPage = f.results_per_page || null;\n\n /**\n * Determines if results per page is configured\n * @type {Boolean}\n */\n this.hasResultsPerPage = isArray(this.resultsPerPage);\n\n /**\n * Css class for the results per page select\n * @type {String}\n */\n this.resultsSlcCssClass = f.results_slc_css_class || 'rspg';\n\n /**\n * Css class for the label preceding results per page select\n * @type {String}\n */\n this.resultsSpanCssClass = f.results_span_css_class || 'rspgSpan';\n\n /**\n * Index of the first row of current page\n * @type {Number}\n * @private\n */\n this.startPagingRow = 0;\n\n /**\n * Total number of pages\n * @type {Number}\n * @private\n */\n this.nbPages = 0;\n\n /**\n * Current page number\n * @type {Number}\n * @private\n */\n this.currentPageNb = 1;\n\n /**\n * Next page button text\n * @type {String}\n */\n this.btnNextPageText = f.btn_next_page_text || '>';\n\n /**\n * Previous page button text\n * @type {String}\n */\n this.btnPrevPageText = f.btn_prev_page_text || '<';\n\n /**\n * Last page button text\n * @type {String}\n */\n this.btnLastPageText = f.btn_last_page_text || '>|';\n\n /**\n * First page button text\n * @type {String}\n */\n this.btnFirstPageText = f.btn_first_page_text || '|<';\n\n /**\n * Next page button HTML\n * @type {String}\n */\n this.btnNextPageHtml = f.btn_next_page_html ||\n (!tf.enableIcons ? null :\n '');\n\n /**\n * Previous page button HTML\n * @type {String}\n */\n this.btnPrevPageHtml = f.btn_prev_page_html ||\n (!tf.enableIcons ? null :\n '');\n\n /**\n * First page button HTML\n * @type {String}\n */\n this.btnFirstPageHtml = f.btn_first_page_html ||\n (!tf.enableIcons ? null :\n '');\n\n /**\n * Last page button HTML\n * @type {String}\n */\n this.btnLastPageHtml = f.btn_last_page_html ||\n (!tf.enableIcons ? null :\n '');\n\n /**\n * Text preceeding page selector drop-down\n * @type {String}\n */\n this.pageText = f.page_text || ' Page ';\n\n /**\n * Text after page selector drop-down\n * @type {String}\n */\n this.ofText = f.of_text || ' of ';\n\n /**\n * Css class for the span containing total number of pages\n * @type {String}\n */\n this.nbPgSpanCssClass = f.nb_pages_css_class || 'nbpg';\n\n /**\n * Determines if paging buttons are enabled (default: true)\n * @type {Boolean}\n */\n this.hasPagingBtns = f.paging_btns === false ? false : true;\n\n /**\n * Defines page selector type, two possible values: 'select', 'input'\n * @type {String}\n */\n this.pageSelectorType = f.page_selector_type || SELECT;\n\n /**\n * Callback fired before the page is changed\n * @type {Function}\n */\n this.onBeforeChangePage = isFn(f.on_before_change_page) ?\n f.on_before_change_page : EMPTY_FN;\n\n /**\n * Callback fired after the page is changed\n * @type {Function}\n */\n this.onAfterChangePage = isFn(f.on_after_change_page) ?\n f.on_after_change_page : EMPTY_FN;\n\n /**\n * Label preciding results per page select\n * @type {DOMElement}\n * @private\n */\n this.slcResultsTxt = null;\n /**\n * Span containing next page button\n * @type {DOMElement}\n * @private\n */\n this.btnNextCont = null;\n /**\n * Span containing previous page button\n * @type {DOMElement}\n * @private\n */\n this.btnPrevCont = null;\n /**\n * Span containing last page button\n * @type {DOMElement}\n * @private\n */\n this.btnLastCont = null;\n /**\n * Span containing first page button\n * @type {DOMElement}\n * @private\n */\n this.btnFirstCont = null;\n /**\n * Span for tot nb pages\n * @type {DOMElement}\n * @private\n */\n this.pgCont = null;\n /**\n * Span preceding pages select (contains 'Page')\n * @type {DOMElement}\n * @private\n */\n this.pgBefore = null;\n /**\n * Span following pages select (contains ' of ')\n * @type {DOMElement}\n * @private\n */\n this.pgAfter = null;\n\n var start_row = tf.refRow;\n var nrows = tf.getRowsNb(true);\n //calculates page nb\n this.nbPages = Math.ceil((nrows - start_row) / this.pagingLength);\n\n var o = this;\n /**\n * Paging DOM events handlers\n * @type {String}\n * @private\n */\n this.evt = {\n slcIndex() {\n return (o.pageSelectorType === SELECT) ?\n o.pagingSlc.options.selectedIndex :\n parseInt(o.pagingSlc.value, 10) - 1;\n },\n nbOpts() {\n return (o.pageSelectorType === SELECT) ?\n parseInt(o.pagingSlc.options.length, 10) - 1 :\n (o.nbPages - 1);\n },\n next() {\n var nextIndex = o.evt.slcIndex() < o.evt.nbOpts() ?\n o.evt.slcIndex() + 1 : 0;\n o.changePage(nextIndex);\n },\n prev() {\n var prevIndex = o.evt.slcIndex() > 0 ?\n o.evt.slcIndex() - 1 : o.evt.nbOpts();\n o.changePage(prevIndex);\n },\n last() {\n o.changePage(o.evt.nbOpts());\n },\n first() {\n o.changePage(0);\n },\n _detectKey(e) {\n var key = keyCode(e);\n if (key === ENTER_KEY) {\n if (tf.sorted) {\n tf.filter();\n o.changePage(o.evt.slcIndex());\n } else {\n o.changePage();\n }\n this.blur();\n }\n },\n slcPagesChange: null,\n nextEvt: null,\n prevEvt: null,\n lastEvt: null,\n firstEvt: null\n };\n }\n\n /**\n * Initialize DOM elements\n */\n init() {\n var slcPages;\n var tf = this.tf;\n var evt = this.evt;\n\n if (this.initialized) {\n return;\n }\n\n // Check resultsPerPage is in expected format and initialise the\n // results per page component\n if (this.hasResultsPerPage) {\n if (this.resultsPerPage.length < 2) {\n this.hasResultsPerPage = false;\n } else {\n this.pagingLength = this.resultsPerPage[1][0];\n this.setResultsPerPage();\n }\n }\n\n evt.slcPagesChange = (event) => {\n var slc = event.target;\n this.changePage(slc.selectedIndex);\n };\n\n // Paging drop-down list selector\n if (this.pageSelectorType === SELECT) {\n slcPages = createElm(SELECT);\n slcPages.className = this.pgSlcCssClass;\n addEvt(slcPages, 'change', evt.slcPagesChange);\n }\n\n // Paging input selector\n if (this.pageSelectorType === INPUT) {\n slcPages = createElm(INPUT, ['value', this.currentPageNb]);\n slcPages.className = this.pgInpCssClass;\n addEvt(slcPages, 'keypress', evt._detectKey);\n }\n\n // btns containers\n var btnNextSpan = createElm('span');\n var btnPrevSpan = createElm('span');\n var btnLastSpan = createElm('span');\n var btnFirstSpan = createElm('span');\n\n if (this.hasPagingBtns) {\n // Next button\n if (!this.btnNextPageHtml) {\n var btnNext = createElm(INPUT,\n ['type', 'button'],\n ['value', this.btnNextPageText],\n ['title', 'Next']\n );\n btnNext.className = this.btnPageCssClass;\n addEvt(btnNext, 'click', evt.next);\n btnNextSpan.appendChild(btnNext);\n } else {\n btnNextSpan.innerHTML = this.btnNextPageHtml;\n addEvt(btnNextSpan, 'click', evt.next);\n }\n // Previous button\n if (!this.btnPrevPageHtml) {\n var btnPrev = createElm(INPUT,\n ['type', 'button'],\n ['value', this.btnPrevPageText],\n ['title', 'Previous']\n );\n btnPrev.className = this.btnPageCssClass;\n addEvt(btnPrev, 'click', evt.prev);\n btnPrevSpan.appendChild(btnPrev);\n } else {\n btnPrevSpan.innerHTML = this.btnPrevPageHtml;\n addEvt(btnPrevSpan, 'click', evt.prev);\n }\n // Last button\n if (!this.btnLastPageHtml) {\n var btnLast = createElm(INPUT,\n ['type', 'button'],\n ['value', this.btnLastPageText],\n ['title', 'Last']\n );\n btnLast.className = this.btnPageCssClass;\n addEvt(btnLast, 'click', evt.last);\n btnLastSpan.appendChild(btnLast);\n } else {\n btnLastSpan.innerHTML = this.btnLastPageHtml;\n addEvt(btnLastSpan, 'click', evt.last);\n }\n // First button\n if (!this.btnFirstPageHtml) {\n var btnFirst = createElm(INPUT,\n ['type', 'button'],\n ['value', this.btnFirstPageText],\n ['title', 'First']\n );\n btnFirst.className = this.btnPageCssClass;\n addEvt(btnFirst, 'click', evt.first);\n btnFirstSpan.appendChild(btnFirst);\n } else {\n btnFirstSpan.innerHTML = this.btnFirstPageHtml;\n addEvt(btnFirstSpan, 'click', evt.first);\n }\n }\n\n // paging elements (buttons+drop-down list) are added to defined element\n if (!this.pagingTgtId) {\n tf.setToolbar();\n }\n var targetEl = !this.pagingTgtId ? tf.mDiv : elm(this.pagingTgtId);\n targetEl.appendChild(btnFirstSpan);\n targetEl.appendChild(btnPrevSpan);\n\n var pgBeforeSpan = createElm('span');\n pgBeforeSpan.appendChild(createText(this.pageText));\n pgBeforeSpan.className = this.nbPgSpanCssClass;\n targetEl.appendChild(pgBeforeSpan);\n targetEl.appendChild(slcPages);\n var pgAfterSpan = createElm('span');\n pgAfterSpan.appendChild(createText(this.ofText));\n pgAfterSpan.className = this.nbPgSpanCssClass;\n targetEl.appendChild(pgAfterSpan);\n var pgSpan = createElm('span');\n pgSpan.className = this.nbPgSpanCssClass;\n pgSpan.appendChild(createText(' ' + this.nbPages + ' '));\n targetEl.appendChild(pgSpan);\n targetEl.appendChild(btnNextSpan);\n targetEl.appendChild(btnLastSpan);\n\n this.btnNextCont = btnNextSpan;\n this.btnPrevCont = btnPrevSpan;\n this.btnLastCont = btnLastSpan;\n this.btnFirstCont = btnFirstSpan;\n this.pgCont = pgSpan;\n this.pgBefore = pgBeforeSpan;\n this.pgAfter = pgAfterSpan;\n this.pagingSlc = slcPages;\n\n this.setPagingInfo();\n\n if (!tf.fltGrid) {\n tf.validateAllRows();\n this.setPagingInfo(tf.validRowsIndex);\n }\n\n this.emitter.on(['after-filtering'], () => this.resetPagingInfo());\n this.emitter.on(['change-page'],\n (tf, pageNumber) => this.setPage(pageNumber));\n this.emitter.on(['change-page-results'],\n (tf, pageLength) => this.changeResultsPerPage(pageLength));\n\n /** @inherited */\n this.initialized = true;\n }\n\n /**\n * Reset paging when filters are already instantiated\n * @param {Boolean} filterTable Execute filtering once paging instanciated\n */\n reset(filterTable = false) {\n var tf = this.tf;\n if (this.isEnabled()) {\n return;\n }\n this.enable();\n this.init();\n\n if (filterTable) {\n tf.filter();\n }\n }\n\n /**\n * Reset paging info from scratch after a filtering process\n */\n resetPagingInfo() {\n this.startPagingRow = 0;\n this.currentPageNb = 1;\n this.setPagingInfo(this.tf.validRowsIndex);\n }\n\n /**\n * Calculate number of pages based on valid rows\n * Refresh paging select according to number of pages\n * @param {Array} validRows Collection of valid rows\n */\n setPagingInfo(validRows) {\n var tf = this.tf;\n var mdiv = !this.pagingTgtId ? tf.mDiv : elm(this.pagingTgtId);\n\n //store valid rows indexes\n tf.validRowsIndex = validRows || tf.getValidRows(true);\n\n //calculate nb of pages\n this.nbPages = Math.ceil(tf.validRowsIndex.length / this.pagingLength);\n //refresh page nb span\n this.pgCont.innerHTML = this.nbPages;\n //select clearing shortcut\n if (this.pageSelectorType === SELECT) {\n this.pagingSlc.innerHTML = '';\n }\n\n if (this.nbPages > 0) {\n mdiv.style.visibility = 'visible';\n if (this.pageSelectorType === SELECT) {\n for (var z = 0; z < this.nbPages; z++) {\n var opt = createOpt(z + 1, z * this.pagingLength, false);\n this.pagingSlc.options[z] = opt;\n }\n } else {\n //input type\n this.pagingSlc.value = this.currentPageNb;\n }\n\n } else {\n /*** if no results paging select and buttons are hidden ***/\n mdiv.style.visibility = 'hidden';\n }\n this.groupByPage(tf.validRowsIndex);\n }\n\n /**\n * Group table rows by page and display valid rows\n * @param {Array} validRows Collection of valid rows\n */\n groupByPage(validRows) {\n var tf = this.tf;\n var rows = tf.tbl.rows;\n var startPagingRow = parseInt(this.startPagingRow, 10);\n var endPagingRow = startPagingRow + parseInt(this.pagingLength, 10);\n\n //store valid rows indexes\n if (validRows) {\n tf.validRowsIndex = validRows;\n }\n\n //this loop shows valid rows of current page\n for (var h = 0, len = tf.getValidRowsNb(true); h < len; h++) {\n var validRowIdx = tf.validRowsIndex[h];\n var r = rows[validRowIdx];\n var isRowValid = r.getAttribute('validRow');\n var rowDisplayed = false;\n\n if (h >= startPagingRow && h < endPagingRow) {\n if (isNull(isRowValid) || Boolean(isRowValid === 'true')) {\n r.style.display = '';\n rowDisplayed = true;\n }\n } else {\n r.style.display = NONE;\n }\n this.emitter.emit('row-paged', tf, validRowIdx, h, rowDisplayed);\n }\n\n // broadcast grouping by page\n this.emitter.emit('grouped-by-page', tf, this);\n }\n\n /**\n * Return the current page number\n * @return {Number} Page number\n */\n getPage() {\n return this.currentPageNb;\n }\n\n /**\n * Show page defined by passed argument (string or number):\n * @param {String}/{Number} cmd possible string values: 'next',\n * 'previous', 'last', 'first' or page number as per param\n */\n setPage(cmd) {\n var tf = this.tf;\n if (!tf.isInitialized() || !this.isEnabled()) {\n return;\n }\n var btnEvt = this.evt,\n cmdtype = typeof cmd;\n if (cmdtype === 'string') {\n switch (cmd.toLowerCase()) {\n case 'next':\n btnEvt.next();\n break;\n case 'previous':\n btnEvt.prev();\n break;\n case 'last':\n btnEvt.last();\n break;\n case 'first':\n btnEvt.first();\n break;\n default:\n btnEvt.next();\n break;\n }\n }\n else if (cmdtype === 'number') {\n this.changePage(cmd - 1);\n }\n }\n\n /**\n * Generates UI elements for the number of results per page drop-down\n */\n setResultsPerPage() {\n var tf = this.tf;\n var evt = this.evt;\n\n if (this.resultsPerPageSlc || !this.resultsPerPage) {\n return;\n }\n\n evt.slcResultsChange = (ev) => {\n this.onChangeResultsPerPage();\n ev.target.blur();\n };\n\n var slcR = createElm(SELECT);\n slcR.className = this.resultsSlcCssClass;\n var slcRText = this.resultsPerPage[0],\n slcROpts = this.resultsPerPage[1];\n var slcRSpan = createElm('span');\n slcRSpan.className = this.resultsSpanCssClass;\n\n // results per page select is added to external element\n if (!this.resultsPerPageTgtId) {\n tf.setToolbar();\n }\n var targetEl = !this.resultsPerPageTgtId ?\n tf.rDiv : elm(this.resultsPerPageTgtId);\n slcRSpan.appendChild(createText(slcRText));\n\n var help = tf.feature('help');\n if (help && help.btn) {\n help.btn.parentNode.insertBefore(slcRSpan, help.btn);\n help.btn.parentNode.insertBefore(slcR, help.btn);\n } else {\n targetEl.appendChild(slcRSpan);\n targetEl.appendChild(slcR);\n }\n\n for (var r = 0; r < slcROpts.length; r++) {\n var currOpt = new Option(slcROpts[r], slcROpts[r], false, false);\n slcR.options[r] = currOpt;\n }\n addEvt(slcR, 'change', evt.slcResultsChange);\n this.slcResultsTxt = slcRSpan;\n this.resultsPerPageSlc = slcR;\n }\n\n /**\n * Remove number of results per page UI elements\n */\n removeResultsPerPage() {\n var tf = this.tf;\n if (!tf.isInitialized() || !this.resultsPerPageSlc ||\n !this.resultsPerPage) {\n return;\n }\n if (this.resultsPerPageSlc) {\n removeElm(this.resultsPerPageSlc);\n }\n if (this.slcResultsTxt) {\n removeElm(this.slcResultsTxt);\n }\n this.resultsPerPageSlc = null;\n this.slcResultsTxt = null;\n }\n\n /**\n * Change the page based on passed index\n * @param {Number} index Index of the page (0-n)\n */\n changePage(index) {\n var tf = this.tf;\n\n if (!this.isEnabled()) {\n return;\n }\n\n this.emitter.emit('before-page-change', tf, (index + 1));\n\n if (index === null) {\n index = this.pageSelectorType === SELECT ?\n this.pagingSlc.options.selectedIndex : this.pagingSlc.value - 1;\n }\n if (index >= 0 && index <= (this.nbPages - 1)) {\n this.onBeforeChangePage(this, (index + 1));\n\n this.currentPageNb = parseInt(index, 10) + 1;\n if (this.pageSelectorType === SELECT) {\n this.pagingSlc.options[index].selected = true;\n } else {\n this.pagingSlc.value = this.currentPageNb;\n }\n\n this.startPagingRow = (this.pageSelectorType === SELECT) ?\n this.pagingSlc.value : (index * this.pagingLength);\n\n this.groupByPage();\n\n this.onAfterChangePage(this, (index + 1));\n }\n\n this.emitter.emit('after-page-change', tf, (index + 1));\n }\n\n /**\n * Change the number of results per page based on passed value\n * @param {String} val The number of results per page\n */\n changeResultsPerPage(val) {\n if (!this.isEnabled() || isNaN(val)) {\n return;\n }\n\n this.resultsPerPageSlc.value = val;\n this.onChangeResultsPerPage();\n }\n\n /**\n * Change rows according to page results drop-down\n */\n onChangeResultsPerPage() {\n var tf = this.tf;\n\n if (!this.isEnabled()) {\n return;\n }\n\n this.emitter.emit('before-page-length-change', tf);\n\n var slcR = this.resultsPerPageSlc;\n var slcIndex = slcR.selectedIndex;\n var slcPagesSelIndex = (this.pageSelectorType === SELECT) ?\n this.pagingSlc.selectedIndex :\n parseInt(this.pagingSlc.value - 1, 10);\n this.pagingLength = parseInt(slcR.options[slcIndex].value, 10);\n this.startPagingRow = this.pagingLength * slcPagesSelIndex;\n\n if (!isNaN(this.pagingLength)) {\n if (this.startPagingRow >= tf.nbFilterableRows) {\n this.startPagingRow = (tf.nbFilterableRows - this.pagingLength);\n }\n this.setPagingInfo();\n\n if (this.pageSelectorType === SELECT) {\n var slcIdx =\n (this.pagingSlc.options.length - 1 <= slcPagesSelIndex) ?\n (this.pagingSlc.options.length - 1) : slcPagesSelIndex;\n this.pagingSlc.options[slcIdx].selected = true;\n }\n }\n\n this.emitter.emit('after-page-length-change', tf, this.pagingLength);\n }\n\n /**\n * Re-set page nb at page re-load\n */\n resetPage() {\n var tf = this.tf;\n if (!this.isEnabled()) {\n return;\n }\n this.emitter.emit('before-reset-page', tf);\n var pgNb = tf.feature('store').getPageNb();\n if (pgNb !== '') {\n this.changePage((pgNb - 1));\n }\n this.emitter.emit('after-reset-page', tf, pgNb);\n }\n\n /**\n * Re-set page length value at page re-load\n */\n resetPageLength() {\n var tf = this.tf;\n if (!this.isEnabled()) {\n return;\n }\n this.emitter.emit('before-reset-page-length', tf);\n var pglenIndex = tf.feature('store').getPageLength();\n\n if (pglenIndex !== '') {\n this.resultsPerPageSlc.options[pglenIndex].selected = true;\n this.changeResultsPerPage();\n }\n this.emitter.emit('after-reset-page-length', tf, pglenIndex);\n }\n\n /**\n * Remove paging feature\n */\n destroy() {\n if (!this.initialized) {\n return;\n }\n\n var evt = this.evt;\n\n if (this.pagingSlc) {\n if (this.pageSelectorType === SELECT) {\n removeEvt(this.pagingSlc, 'change', evt.slcPagesChange);\n }\n else if (this.pageSelectorType === INPUT) {\n removeEvt(this.pagingSlc, 'keypress', evt._detectKey);\n }\n removeElm(this.pagingSlc);\n }\n\n if (this.btnNextCont) {\n removeEvt(this.btnNextCont, 'click', evt.next);\n removeElm(this.btnNextCont);\n this.btnNextCont = null;\n }\n\n if (this.btnPrevCont) {\n removeEvt(this.btnPrevCont, 'click', evt.prev);\n removeElm(this.btnPrevCont);\n this.btnPrevCont = null;\n }\n\n if (this.btnLastCont) {\n removeEvt(this.btnLastCont, 'click', evt.last);\n removeElm(this.btnLastCont);\n this.btnLastCont = null;\n }\n\n if (this.btnFirstCont) {\n removeEvt(this.btnFirstCont, 'click', evt.first);\n removeElm(this.btnFirstCont);\n this.btnFirstCont = null;\n }\n\n if (this.pgBefore) {\n removeElm(this.pgBefore);\n this.pgBefore = null;\n }\n\n if (this.pgAfter) {\n removeElm(this.pgAfter);\n this.pgAfter = null;\n }\n\n if (this.pgCont) {\n removeElm(this.pgCont);\n this.pgCont = null;\n }\n\n if (this.hasResultsPerPage) {\n this.removeResultsPerPage();\n }\n\n this.emitter.off(['after-filtering'], () => this.resetPagingInfo());\n this.emitter.off(['change-page'],\n (tf, pageNumber) => this.setPage(pageNumber));\n this.emitter.off(['change-page-results'],\n (tf, pageLength) => this.changeResultsPerPage(pageLength));\n\n this.pagingSlc = null;\n this.nbPages = 0;\n this.disable();\n this.initialized = false;\n }\n}\n" }, { - "__docId__": 499, + "__docId__": 503, "kind": "class", "static": true, "variation": null, @@ -10774,7 +10848,7 @@ ] }, { - "__docId__": 500, + "__docId__": 504, "kind": "constructor", "static": false, "variation": null, @@ -10799,7 +10873,7 @@ "generator": false }, { - "__docId__": 501, + "__docId__": 505, "kind": "member", "static": false, "variation": null, @@ -10819,7 +10893,7 @@ } }, { - "__docId__": 502, + "__docId__": 506, "kind": "member", "static": false, "variation": null, @@ -10839,7 +10913,7 @@ } }, { - "__docId__": 503, + "__docId__": 507, "kind": "member", "static": false, "variation": null, @@ -10859,7 +10933,7 @@ } }, { - "__docId__": 504, + "__docId__": 508, "kind": "member", "static": false, "variation": null, @@ -10879,7 +10953,7 @@ } }, { - "__docId__": 505, + "__docId__": 509, "kind": "member", "static": false, "variation": null, @@ -10899,7 +10973,7 @@ } }, { - "__docId__": 506, + "__docId__": 510, "kind": "member", "static": false, "variation": null, @@ -10919,7 +10993,7 @@ } }, { - "__docId__": 507, + "__docId__": 511, "kind": "member", "static": false, "variation": null, @@ -10939,7 +11013,7 @@ } }, { - "__docId__": 508, + "__docId__": 512, "kind": "member", "static": false, "variation": null, @@ -10959,7 +11033,7 @@ } }, { - "__docId__": 509, + "__docId__": 513, "kind": "member", "static": false, "variation": null, @@ -10979,7 +11053,7 @@ } }, { - "__docId__": 510, + "__docId__": 514, "kind": "member", "static": false, "variation": null, @@ -10999,7 +11073,7 @@ } }, { - "__docId__": 511, + "__docId__": 515, "kind": "member", "static": false, "variation": null, @@ -11019,7 +11093,7 @@ } }, { - "__docId__": 512, + "__docId__": 516, "kind": "member", "static": false, "variation": null, @@ -11039,7 +11113,7 @@ } }, { - "__docId__": 513, + "__docId__": 517, "kind": "member", "static": false, "variation": null, @@ -11059,7 +11133,7 @@ } }, { - "__docId__": 514, + "__docId__": 518, "kind": "member", "static": false, "variation": null, @@ -11079,7 +11153,7 @@ } }, { - "__docId__": 515, + "__docId__": 519, "kind": "member", "static": false, "variation": null, @@ -11099,7 +11173,7 @@ } }, { - "__docId__": 516, + "__docId__": 520, "kind": "member", "static": false, "variation": null, @@ -11119,7 +11193,7 @@ } }, { - "__docId__": 517, + "__docId__": 521, "kind": "member", "static": false, "variation": null, @@ -11139,7 +11213,7 @@ } }, { - "__docId__": 518, + "__docId__": 522, "kind": "member", "static": false, "variation": null, @@ -11159,7 +11233,7 @@ } }, { - "__docId__": 519, + "__docId__": 523, "kind": "member", "static": false, "variation": null, @@ -11179,7 +11253,7 @@ } }, { - "__docId__": 520, + "__docId__": 524, "kind": "member", "static": false, "variation": null, @@ -11199,7 +11273,7 @@ } }, { - "__docId__": 521, + "__docId__": 525, "kind": "member", "static": false, "variation": null, @@ -11219,7 +11293,7 @@ } }, { - "__docId__": 522, + "__docId__": 526, "kind": "member", "static": false, "variation": null, @@ -11239,7 +11313,7 @@ } }, { - "__docId__": 523, + "__docId__": 527, "kind": "member", "static": false, "variation": null, @@ -11259,7 +11333,7 @@ } }, { - "__docId__": 524, + "__docId__": 528, "kind": "member", "static": false, "variation": null, @@ -11279,7 +11353,7 @@ } }, { - "__docId__": 525, + "__docId__": 529, "kind": "member", "static": false, "variation": null, @@ -11299,7 +11373,7 @@ } }, { - "__docId__": 526, + "__docId__": 530, "kind": "member", "static": false, "variation": null, @@ -11319,7 +11393,7 @@ } }, { - "__docId__": 527, + "__docId__": 531, "kind": "member", "static": false, "variation": null, @@ -11339,7 +11413,7 @@ } }, { - "__docId__": 528, + "__docId__": 532, "kind": "member", "static": false, "variation": null, @@ -11359,7 +11433,7 @@ } }, { - "__docId__": 529, + "__docId__": 533, "kind": "member", "static": false, "variation": null, @@ -11379,7 +11453,7 @@ } }, { - "__docId__": 530, + "__docId__": 534, "kind": "member", "static": false, "variation": null, @@ -11399,7 +11473,7 @@ } }, { - "__docId__": 531, + "__docId__": 535, "kind": "member", "static": false, "variation": null, @@ -11419,7 +11493,7 @@ } }, { - "__docId__": 532, + "__docId__": 536, "kind": "member", "static": false, "variation": null, @@ -11439,7 +11513,7 @@ } }, { - "__docId__": 533, + "__docId__": 537, "kind": "member", "static": false, "variation": null, @@ -11459,7 +11533,7 @@ } }, { - "__docId__": 534, + "__docId__": 538, "kind": "member", "static": false, "variation": null, @@ -11479,7 +11553,7 @@ } }, { - "__docId__": 535, + "__docId__": 539, "kind": "member", "static": false, "variation": null, @@ -11499,7 +11573,7 @@ } }, { - "__docId__": 536, + "__docId__": 540, "kind": "member", "static": false, "variation": null, @@ -11519,7 +11593,7 @@ } }, { - "__docId__": 537, + "__docId__": 541, "kind": "member", "static": false, "variation": null, @@ -11539,7 +11613,7 @@ } }, { - "__docId__": 538, + "__docId__": 542, "kind": "member", "static": false, "variation": null, @@ -11559,7 +11633,7 @@ } }, { - "__docId__": 539, + "__docId__": 543, "kind": "member", "static": false, "variation": null, @@ -11577,7 +11651,7 @@ } }, { - "__docId__": 540, + "__docId__": 544, "kind": "member", "static": false, "variation": null, @@ -11597,7 +11671,7 @@ } }, { - "__docId__": 541, + "__docId__": 545, "kind": "method", "static": false, "variation": null, @@ -11611,7 +11685,7 @@ "generator": false }, { - "__docId__": 542, + "__docId__": 546, "kind": "member", "static": false, "variation": null, @@ -11629,7 +11703,7 @@ } }, { - "__docId__": 543, + "__docId__": 547, "kind": "member", "static": false, "variation": null, @@ -11647,7 +11721,7 @@ } }, { - "__docId__": 544, + "__docId__": 548, "kind": "member", "static": false, "variation": null, @@ -11665,7 +11739,7 @@ } }, { - "__docId__": 545, + "__docId__": 549, "kind": "member", "static": false, "variation": null, @@ -11683,7 +11757,7 @@ } }, { - "__docId__": 546, + "__docId__": 550, "kind": "member", "static": false, "variation": null, @@ -11701,7 +11775,7 @@ } }, { - "__docId__": 547, + "__docId__": 551, "kind": "member", "static": false, "variation": null, @@ -11719,7 +11793,7 @@ } }, { - "__docId__": 548, + "__docId__": 552, "kind": "member", "static": false, "variation": null, @@ -11737,7 +11811,7 @@ } }, { - "__docId__": 549, + "__docId__": 553, "kind": "member", "static": false, "variation": null, @@ -11755,7 +11829,7 @@ } }, { - "__docId__": 550, + "__docId__": 554, "kind": "member", "static": false, "variation": null, @@ -11773,7 +11847,7 @@ } }, { - "__docId__": 551, + "__docId__": 555, "kind": "member", "static": false, "variation": null, @@ -11791,7 +11865,7 @@ } }, { - "__docId__": 552, + "__docId__": 556, "kind": "member", "static": false, "variation": null, @@ -11814,7 +11888,7 @@ } }, { - "__docId__": 553, + "__docId__": 557, "kind": "method", "static": false, "variation": null, @@ -11839,7 +11913,7 @@ "generator": false }, { - "__docId__": 554, + "__docId__": 558, "kind": "method", "static": false, "variation": null, @@ -11853,7 +11927,7 @@ "generator": false }, { - "__docId__": 555, + "__docId__": 559, "kind": "member", "static": false, "variation": null, @@ -11871,7 +11945,7 @@ } }, { - "__docId__": 556, + "__docId__": 560, "kind": "member", "static": false, "variation": null, @@ -11889,7 +11963,7 @@ } }, { - "__docId__": 557, + "__docId__": 561, "kind": "method", "static": false, "variation": null, @@ -11914,7 +11988,7 @@ "generator": false }, { - "__docId__": 558, + "__docId__": 562, "kind": "member", "static": false, "variation": null, @@ -11932,7 +12006,7 @@ } }, { - "__docId__": 559, + "__docId__": 563, "kind": "method", "static": false, "variation": null, @@ -11957,7 +12031,7 @@ "generator": false }, { - "__docId__": 560, + "__docId__": 564, "kind": "method", "static": false, "variation": null, @@ -11979,7 +12053,7 @@ "generator": false }, { - "__docId__": 561, + "__docId__": 565, "kind": "method", "static": false, "variation": null, @@ -12004,7 +12078,7 @@ "generator": false }, { - "__docId__": 562, + "__docId__": 566, "kind": "method", "static": false, "variation": null, @@ -12018,7 +12092,7 @@ "generator": false }, { - "__docId__": 563, + "__docId__": 567, "kind": "member", "static": false, "variation": null, @@ -12036,7 +12110,7 @@ } }, { - "__docId__": 564, + "__docId__": 568, "kind": "member", "static": false, "variation": null, @@ -12054,7 +12128,7 @@ } }, { - "__docId__": 565, + "__docId__": 569, "kind": "method", "static": false, "variation": null, @@ -12068,7 +12142,7 @@ "generator": false }, { - "__docId__": 566, + "__docId__": 570, "kind": "member", "static": false, "variation": null, @@ -12086,7 +12160,7 @@ } }, { - "__docId__": 567, + "__docId__": 571, "kind": "member", "static": false, "variation": null, @@ -12104,7 +12178,7 @@ } }, { - "__docId__": 568, + "__docId__": 572, "kind": "method", "static": false, "variation": null, @@ -12129,7 +12203,7 @@ "generator": false }, { - "__docId__": 569, + "__docId__": 573, "kind": "member", "static": false, "variation": null, @@ -12147,7 +12221,7 @@ } }, { - "__docId__": 570, + "__docId__": 574, "kind": "member", "static": false, "variation": null, @@ -12165,7 +12239,7 @@ } }, { - "__docId__": 571, + "__docId__": 575, "kind": "method", "static": false, "variation": null, @@ -12190,7 +12264,7 @@ "generator": false }, { - "__docId__": 572, + "__docId__": 576, "kind": "method", "static": false, "variation": null, @@ -12204,7 +12278,7 @@ "generator": false }, { - "__docId__": 573, + "__docId__": 577, "kind": "member", "static": false, "variation": null, @@ -12222,7 +12296,7 @@ } }, { - "__docId__": 574, + "__docId__": 578, "kind": "member", "static": false, "variation": null, @@ -12240,7 +12314,7 @@ } }, { - "__docId__": 575, + "__docId__": 579, "kind": "member", "static": false, "variation": null, @@ -12258,7 +12332,7 @@ } }, { - "__docId__": 576, + "__docId__": 580, "kind": "method", "static": false, "variation": null, @@ -12272,7 +12346,7 @@ "generator": false }, { - "__docId__": 577, + "__docId__": 581, "kind": "method", "static": false, "variation": null, @@ -12286,7 +12360,7 @@ "generator": false }, { - "__docId__": 578, + "__docId__": 582, "kind": "method", "static": false, "variation": null, @@ -12300,7 +12374,7 @@ "generator": false }, { - "__docId__": 579, + "__docId__": 583, "kind": "member", "static": false, "variation": null, @@ -12318,7 +12392,7 @@ } }, { - "__docId__": 580, + "__docId__": 584, "kind": "member", "static": false, "variation": null, @@ -12336,7 +12410,7 @@ } }, { - "__docId__": 581, + "__docId__": 585, "kind": "member", "static": false, "variation": null, @@ -12354,7 +12428,7 @@ } }, { - "__docId__": 582, + "__docId__": 586, "kind": "member", "static": false, "variation": null, @@ -12372,7 +12446,7 @@ } }, { - "__docId__": 583, + "__docId__": 587, "kind": "member", "static": false, "variation": null, @@ -12390,7 +12464,7 @@ } }, { - "__docId__": 584, + "__docId__": 588, "kind": "member", "static": false, "variation": null, @@ -12408,7 +12482,7 @@ } }, { - "__docId__": 585, + "__docId__": 589, "kind": "member", "static": false, "variation": null, @@ -12426,7 +12500,7 @@ } }, { - "__docId__": 586, + "__docId__": 590, "kind": "member", "static": false, "variation": null, @@ -12444,7 +12518,7 @@ } }, { - "__docId__": 587, + "__docId__": 591, "kind": "member", "static": false, "variation": null, @@ -12462,7 +12536,7 @@ } }, { - "__docId__": 588, + "__docId__": 592, "kind": "member", "static": false, "variation": null, @@ -12480,7 +12554,7 @@ } }, { - "__docId__": 589, + "__docId__": 593, "kind": "file", "static": true, "variation": null, @@ -12493,7 +12567,7 @@ "content": "import {Feature} from '../feature';\nimport {isFn, isUndef, EMPTY_FN} from '../types';\nimport {createElm, removeElm} from '../dom';\nimport {addEvt, cancelEvt, stopEvt, targetEvt, removeEvt} from '../event';\nimport {INPUT, NONE, CHECKLIST, MULTIPLE} from '../const';\nimport {root} from '../root';\n\n/**\n * Pop-up filter component\n * @export\n * @class PopupFilter\n * @extends {Feature}\n */\nexport class PopupFilter extends Feature {\n\n /**\n * Creates an instance of PopupFilter\n * @param {TableFilter} tf TableFilter instance\n */\n constructor(tf) {\n super(tf, 'popupFilters');\n\n // Configuration object\n let f = this.config;\n\n // Enable external filters\n tf.isExternalFlt = true;\n tf.externalFltTgtIds = [];\n\n /**\n * Close active popup filter upon filtering, enabled by default\n * @type {Boolean}\n */\n this.closeOnFiltering = f.popup_filters_close_on_filtering === false ?\n false : true;\n\n /**\n * Filter icon path\n * @type {String}\n */\n this.iconPath = f.popup_filters_image ||\n tf.themesPath + 'icn_filter.gif';\n\n /**\n * Active filter icon path\n * @type {string}\n */\n this.activeIconPath = f.popup_filters_image_active ||\n tf.themesPath + 'icn_filterActive.gif';\n\n /**\n * HTML for the filter icon\n * @type {string}\n */\n this.iconHtml = f.popup_filters_image_html ||\n '\"Column';\n\n /**\n * Css class assigned to filter container element\n * @type {String}\n */\n this.containerCssClass = f.popup_div_css_class || 'popUpFilter';\n\n /**\n * Ensure filter's container element width matches column width, enabled\n * by default\n * @type {Boolean}\n */\n this.adjustToContainer =\n f.popup_filters_adjust_to_container === false ? false : true;\n\n /**\n * Callback fired before a popup filter is opened\n * @type {Function}\n */\n this.onBeforeOpen = isFn(f.on_before_popup_filter_open) ?\n f.on_before_popup_filter_open : EMPTY_FN;\n\n /**\n * Callback fired after a popup filter is opened\n * @type {Function}\n */\n this.onAfterOpen = isFn(f.on_after_popup_filter_open) ?\n f.on_after_popup_filter_open : EMPTY_FN;\n\n /**\n * Callback fired before a popup filter is closed\n * @type {Function}\n */\n this.onBeforeClose = isFn(f.on_before_popup_filter_close) ?\n f.on_before_popup_filter_close : EMPTY_FN;\n\n /**\n * Callback fired after a popup filter is closed\n * @type {Function}\n */\n this.onAfterClose = isFn(f.on_after_popup_filter_close) ?\n f.on_after_popup_filter_close : EMPTY_FN;\n\n /**\n * Collection of filters spans\n * @type {Array}\n * @private\n */\n this.fltSpans = [];\n\n /**\n * Collection of filters icons\n * @type {Array}\n * @private\n */\n this.fltIcons = [];\n\n /**\n * Collection of filters icons cached after pop-up filters are removed\n * @type {Array}\n * @private\n */\n this.filtersCache = null;\n\n /**\n * Collection of filters containers\n * @type {Array}\n * @private\n */\n this.fltElms = this.filtersCache || [];\n\n /**\n * Prefix for pop-up filter container ID\n * @type {String}\n * @private\n */\n this.prfxDiv = 'popup_';\n\n /**\n * Column index of popup filter currently active\n * @type {Number}\n * @private\n */\n this.activeFilterIdx = -1;\n }\n\n /**\n * Click event handler for pop-up filter icon\n * @private\n */\n onClick(evt) {\n let elm = targetEvt(evt).parentNode;\n let colIndex = parseInt(elm.getAttribute('ci'), 10);\n\n this.closeAll(colIndex);\n this.toggle(colIndex);\n\n if (this.adjustToContainer) {\n let cont = this.fltElms[colIndex],\n header = this.tf.getHeaderElement(colIndex),\n headerWidth = header.clientWidth * 0.95;\n cont.style.width = parseInt(headerWidth, 10) + 'px';\n }\n cancelEvt(evt);\n stopEvt(evt);\n }\n\n /**\n * Mouse-up event handler handling popup filter auto-close behaviour\n * @private\n */\n onMouseup(evt) {\n if (this.activeFilterIdx === -1) {\n return;\n }\n let targetElm = targetEvt(evt);\n let activeFlt = this.fltElms[this.activeFilterIdx];\n let icon = this.fltIcons[this.activeFilterIdx];\n\n if (icon === targetElm) {\n return;\n }\n\n while (targetElm && targetElm !== activeFlt) {\n targetElm = targetElm.parentNode;\n }\n\n if (targetElm !== activeFlt) {\n this.close(this.activeFilterIdx);\n }\n\n return;\n }\n\n /**\n * Initialize DOM elements\n */\n init() {\n if (this.initialized) {\n return;\n }\n\n let tf = this.tf;\n\n // Override headers row index if no grouped headers\n // TODO: Because of the filters row generation, headers row index needs\n // adjusting: prevent useless row generation\n if (tf.headersRow <= 1 && isNaN(tf.config().headers_row_index)) {\n tf.headersRow = 0;\n }\n\n // Adjust headers row index for grid-layout mode\n // TODO: Because of the filters row generation, headers row index needs\n // adjusting: prevent useless row generation\n if (tf.gridLayout) {\n tf.headersRow--;\n this.buildIcons();\n }\n\n // subscribe to events\n this.emitter.on(['before-filtering'], () => this.setIconsState());\n this.emitter.on(['after-filtering'], () => this.closeAll());\n this.emitter.on(['cell-processed'],\n (tf, cellIndex) => this.changeState(cellIndex, true));\n this.emitter.on(['filters-row-inserted'], () => this.buildIcons());\n this.emitter.on(['before-filter-init'],\n (tf, colIndex) => this.build(colIndex));\n\n /** @inherited */\n this.initialized = true;\n }\n\n /**\n * Reset previously destroyed feature\n */\n reset() {\n this.enable();\n this.init();\n this.buildIcons();\n this.buildAll();\n }\n\n /**\n * Build all filters icons\n */\n buildIcons() {\n let tf = this.tf;\n\n // TODO: Because of the filters row generation, headers row index needs\n // adjusting: prevent useless row generation\n tf.headersRow++;\n\n for (let i = 0; i < tf.nbCells; i++) {\n if (tf.getFilterType(i) === NONE) {\n continue;\n }\n let icon = createElm('span', ['ci', i]);\n icon.innerHTML = this.iconHtml;\n let header = tf.getHeaderElement(i);\n header.appendChild(icon);\n addEvt(icon, 'click', (evt) => this.onClick(evt));\n this.fltSpans[i] = icon;\n this.fltIcons[i] = icon.firstChild;\n }\n }\n\n /**\n * Build all pop-up filters elements\n */\n buildAll() {\n for (let i = 0; i < this.filtersCache.length; i++) {\n this.build(i, this.filtersCache[i]);\n }\n }\n\n /**\n * Build a specified pop-up filter elements\n * @param {Number} colIndex Column index\n * @param {Object} div Optional container DOM element\n */\n build(colIndex, div) {\n let tf = this.tf;\n let contId = `${this.prfxDiv}${tf.id}_${colIndex}`;\n let cont = div || createElm('div', ['id', contId]);\n cont.className = this.containerCssClass;\n tf.externalFltTgtIds.push(cont.id);\n\n let header = tf.getHeaderElement(colIndex);\n header.insertBefore(cont, header.firstChild);\n addEvt(cont, 'click', (evt) => stopEvt(evt));\n this.fltElms[colIndex] = cont;\n }\n\n /**\n * Toggle visibility of specified filter\n * @param {Number} colIndex Column index\n */\n toggle(colIndex) {\n if (!this.isOpen(colIndex)) {\n this.open(colIndex);\n } else {\n this.close(colIndex);\n }\n }\n\n /**\n * Open popup filter of specified column\n * @param {Number} colIndex Column index\n */\n open(colIndex) {\n let tf = this.tf,\n container = this.fltElms[colIndex];\n\n this.onBeforeOpen(this, container, colIndex);\n\n container.style.display = 'block';\n this.activeFilterIdx = colIndex;\n addEvt(root, 'mouseup', (evt) => this.onMouseup(evt));\n\n if (tf.getFilterType(colIndex) === INPUT) {\n let flt = tf.getFilterElement(colIndex);\n if (flt) {\n flt.focus();\n }\n }\n\n this.onAfterOpen(this, container, colIndex);\n }\n\n /**\n * Close popup filter of specified column\n * @param {Number} colIndex Column index\n */\n close(colIndex) {\n let container = this.fltElms[colIndex];\n\n this.onBeforeClose(this, container, colIndex);\n\n container.style.display = NONE;\n if (this.activeFilterIdx === colIndex) {\n this.activeFilterIdx = -1;\n }\n removeEvt(root, 'mouseup', (evt) => this.onMouseup(evt));\n\n this.onAfterClose(this, container, colIndex);\n }\n\n /**\n * Check if popup filter for specified column is open\n * @param {Number} colIndex Column index\n * @returns {Boolean}\n */\n isOpen(colIndex) {\n return this.fltElms[colIndex].style.display === 'block';\n }\n\n /**\n * Close all filters excepted for the specified one if any\n * @param {Number} exceptIdx Column index of the filter to not close\n */\n closeAll(exceptIdx) {\n // Do not close filters only if argument is undefined and close on\n // filtering option is disabled\n if (isUndef(exceptIdx) && !this.closeOnFiltering) {\n return;\n }\n for (let i = 0; i < this.fltElms.length; i++) {\n if (i === exceptIdx) {\n continue;\n }\n let fltType = tf.getFilterType(i);\n let isMultipleFilter =\n (fltType === CHECKLIST || fltType === MULTIPLE);\n\n // Always hide all single selection filter types but hide multiple\n // selection filter types only if index set\n if (!isMultipleFilter || !isUndef(exceptIdx)) {\n this.close(i);\n }\n }\n }\n\n /**\n * Build all the icons representing the pop-up filters\n */\n setIconsState() {\n for (let i = 0; i < this.fltIcons.length; i++) {\n this.changeState(i, false);\n }\n }\n\n /**\n * Apply specified icon state\n * @param {Number} colIndex Column index\n * @param {Boolean} active Apply active state\n */\n changeState(colIndex, active) {\n let icon = this.fltIcons[colIndex];\n if (icon) {\n icon.src = active ? this.activeIconPath : this.iconPath;\n }\n }\n\n /**\n * Remove pop-up filters\n */\n destroy() {\n if (!this.initialized) {\n return;\n }\n\n this.filtersCache = [];\n for (let i = 0; i < this.fltElms.length; i++) {\n let container = this.fltElms[i],\n icon = this.fltSpans[i],\n iconImg = this.fltIcons[i];\n if (container) {\n removeElm(container);\n this.filtersCache[i] = container;\n }\n container = null;\n if (icon) {\n removeElm(icon);\n }\n icon = null;\n if (iconImg) {\n removeElm(iconImg);\n }\n iconImg = null;\n }\n this.fltElms = [];\n this.fltSpans = [];\n this.fltIcons = [];\n\n // TODO: expose an API to handle external filter IDs\n tf.externalFltTgtIds = [];\n\n // unsubscribe to events\n this.emitter.off(['before-filtering'], () => this.setIconsState());\n this.emitter.off(['after-filtering'], () => this.closeAll());\n this.emitter.off(['cell-processed'],\n (tf, cellIndex) => this.changeState(cellIndex, true));\n this.emitter.off(['filters-row-inserted'], () => this.buildIcons());\n this.emitter.off(['before-filter-init'],\n (tf, colIndex) => this.build(colIndex));\n\n this.initialized = false;\n }\n\n}\n" }, { - "__docId__": 590, + "__docId__": 594, "kind": "class", "static": true, "variation": null, @@ -12522,7 +12596,7 @@ ] }, { - "__docId__": 591, + "__docId__": 595, "kind": "constructor", "static": false, "variation": null, @@ -12547,7 +12621,7 @@ "generator": false }, { - "__docId__": 592, + "__docId__": 596, "kind": "member", "static": false, "variation": null, @@ -12567,7 +12641,7 @@ } }, { - "__docId__": 593, + "__docId__": 597, "kind": "member", "static": false, "variation": null, @@ -12587,7 +12661,7 @@ } }, { - "__docId__": 594, + "__docId__": 598, "kind": "member", "static": false, "variation": null, @@ -12607,7 +12681,7 @@ } }, { - "__docId__": 595, + "__docId__": 599, "kind": "member", "static": false, "variation": null, @@ -12627,7 +12701,7 @@ } }, { - "__docId__": 596, + "__docId__": 600, "kind": "member", "static": false, "variation": null, @@ -12647,7 +12721,7 @@ } }, { - "__docId__": 597, + "__docId__": 601, "kind": "member", "static": false, "variation": null, @@ -12667,7 +12741,7 @@ } }, { - "__docId__": 598, + "__docId__": 602, "kind": "member", "static": false, "variation": null, @@ -12687,7 +12761,7 @@ } }, { - "__docId__": 599, + "__docId__": 603, "kind": "member", "static": false, "variation": null, @@ -12707,7 +12781,7 @@ } }, { - "__docId__": 600, + "__docId__": 604, "kind": "member", "static": false, "variation": null, @@ -12727,7 +12801,7 @@ } }, { - "__docId__": 601, + "__docId__": 605, "kind": "member", "static": false, "variation": null, @@ -12747,7 +12821,7 @@ } }, { - "__docId__": 602, + "__docId__": 606, "kind": "member", "static": false, "variation": null, @@ -12767,7 +12841,7 @@ } }, { - "__docId__": 603, + "__docId__": 607, "kind": "member", "static": false, "variation": null, @@ -12787,7 +12861,7 @@ } }, { - "__docId__": 604, + "__docId__": 608, "kind": "member", "static": false, "variation": null, @@ -12807,7 +12881,7 @@ } }, { - "__docId__": 605, + "__docId__": 609, "kind": "member", "static": false, "variation": null, @@ -12827,7 +12901,7 @@ } }, { - "__docId__": 606, + "__docId__": 610, "kind": "member", "static": false, "variation": null, @@ -12847,7 +12921,7 @@ } }, { - "__docId__": 607, + "__docId__": 611, "kind": "member", "static": false, "variation": null, @@ -12867,7 +12941,7 @@ } }, { - "__docId__": 608, + "__docId__": 612, "kind": "method", "static": false, "variation": null, @@ -12888,7 +12962,7 @@ "generator": false }, { - "__docId__": 609, + "__docId__": 613, "kind": "method", "static": false, "variation": null, @@ -12909,7 +12983,7 @@ "generator": false }, { - "__docId__": 610, + "__docId__": 614, "kind": "method", "static": false, "variation": null, @@ -12923,7 +12997,7 @@ "generator": false }, { - "__docId__": 611, + "__docId__": 615, "kind": "member", "static": false, "variation": null, @@ -12946,7 +13020,7 @@ } }, { - "__docId__": 612, + "__docId__": 616, "kind": "method", "static": false, "variation": null, @@ -12960,7 +13034,7 @@ "generator": false }, { - "__docId__": 613, + "__docId__": 617, "kind": "method", "static": false, "variation": null, @@ -12974,7 +13048,7 @@ "generator": false }, { - "__docId__": 614, + "__docId__": 618, "kind": "method", "static": false, "variation": null, @@ -12988,7 +13062,7 @@ "generator": false }, { - "__docId__": 615, + "__docId__": 619, "kind": "method", "static": false, "variation": null, @@ -13023,7 +13097,7 @@ "generator": false }, { - "__docId__": 616, + "__docId__": 620, "kind": "method", "static": false, "variation": null, @@ -13048,7 +13122,7 @@ "generator": false }, { - "__docId__": 617, + "__docId__": 621, "kind": "method", "static": false, "variation": null, @@ -13073,7 +13147,7 @@ "generator": false }, { - "__docId__": 618, + "__docId__": 622, "kind": "member", "static": false, "variation": null, @@ -13091,7 +13165,7 @@ } }, { - "__docId__": 619, + "__docId__": 623, "kind": "method", "static": false, "variation": null, @@ -13116,7 +13190,7 @@ "generator": false }, { - "__docId__": 620, + "__docId__": 624, "kind": "member", "static": false, "variation": null, @@ -13134,7 +13208,7 @@ } }, { - "__docId__": 621, + "__docId__": 625, "kind": "method", "static": false, "variation": null, @@ -13173,7 +13247,7 @@ "generator": false }, { - "__docId__": 622, + "__docId__": 626, "kind": "method", "static": false, "variation": null, @@ -13198,7 +13272,7 @@ "generator": false }, { - "__docId__": 623, + "__docId__": 627, "kind": "method", "static": false, "variation": null, @@ -13212,7 +13286,7 @@ "generator": false }, { - "__docId__": 624, + "__docId__": 628, "kind": "method", "static": false, "variation": null, @@ -13247,7 +13321,7 @@ "generator": false }, { - "__docId__": 625, + "__docId__": 629, "kind": "method", "static": false, "variation": null, @@ -13261,7 +13335,7 @@ "generator": false }, { - "__docId__": 626, + "__docId__": 630, "kind": "member", "static": false, "variation": null, @@ -13279,7 +13353,7 @@ } }, { - "__docId__": 627, + "__docId__": 631, "kind": "member", "static": false, "variation": null, @@ -13297,7 +13371,7 @@ } }, { - "__docId__": 628, + "__docId__": 632, "kind": "member", "static": false, "variation": null, @@ -13315,7 +13389,7 @@ } }, { - "__docId__": 629, + "__docId__": 633, "kind": "member", "static": false, "variation": null, @@ -13333,7 +13407,7 @@ } }, { - "__docId__": 630, + "__docId__": 634, "kind": "member", "static": false, "variation": null, @@ -13351,7 +13425,7 @@ } }, { - "__docId__": 631, + "__docId__": 635, "kind": "file", "static": true, "variation": null, @@ -13364,7 +13438,7 @@ "content": "import {Feature} from '../feature';\nimport {createElm, createText, elm, removeElm} from '../dom';\nimport {isFn, EMPTY_FN} from '../types';\n\n/**\n * Rows counter UI component\n * @export\n * @class RowsCounter\n * @extends {Feature}\n */\nexport class RowsCounter extends Feature {\n\n /**\n * Creates an instance of RowsCounter\n * @param {TableFilter} tf TableFilter instance\n */\n constructor(tf) {\n super(tf, 'rowsCounter');\n\n // TableFilter configuration\n let f = this.config;\n\n /**\n * ID of custom container element\n * @type {String}\n */\n this.targetId = f.rows_counter_target_id || null;\n\n /**\n * Container DOM element\n * @type {DOMElement}\n * @private\n */\n this.container = null;\n\n /**\n * Container DOM element for label displaying the total number of rows\n * @type {DOMElement}\n * @private\n */\n this.label = null;\n\n /**\n * Text preceding the total number of rows\n * @type {String}\n */\n this.text = f.rows_counter_text || 'Rows: ';\n\n /**\n * Separator symbol appearing between the first and last visible rows of\n * current page when paging is enabled. ie: Rows: 31-40 / 70\n * @type {String}\n */\n this.fromToTextSeparator = f.from_to_text_separator || '-';\n\n /**\n * Separator symbol appearing between the first and last visible rows of\n * current page and the total number of filterable rows when paging is\n * enabled. ie: Rows: 31-40 / 70\n * @type {String}\n */\n this.overText = f.over_text || ' / ';\n\n /**\n * Css class for container element\n * @type {String}\n */\n this.cssClass = f.tot_rows_css_class || 'tot';\n\n /**\n * Callback fired before the counter is refreshed\n * @type {Function}\n */\n this.onBeforeRefreshCounter = isFn(f.on_before_refresh_counter) ?\n f.on_before_refresh_counter : EMPTY_FN;\n\n /**\n * Callback fired after the counter is refreshed\n * @type {Function}\n */\n this.onAfterRefreshCounter = isFn(f.on_after_refresh_counter) ?\n f.on_after_refresh_counter : EMPTY_FN;\n }\n\n /**\n * Initializes RowsCounter instance\n */\n init() {\n if (this.initialized) {\n return;\n }\n\n let tf = this.tf;\n\n //rows counter container\n let countDiv = createElm('div');\n countDiv.className = this.cssClass;\n //rows counter label\n let countSpan = createElm('span');\n let countText = createElm('span');\n countText.appendChild(createText(this.text));\n\n // counter is added to defined element\n if (!this.targetId) {\n tf.setToolbar();\n }\n let targetEl = !this.targetId ? tf.lDiv : elm(this.targetId);\n\n //default container: 'lDiv'\n if (!this.targetId) {\n countDiv.appendChild(countText);\n countDiv.appendChild(countSpan);\n targetEl.appendChild(countDiv);\n }\n else {\n //custom container, no need to append statusDiv\n targetEl.appendChild(countText);\n targetEl.appendChild(countSpan);\n }\n this.container = countDiv;\n this.label = countSpan;\n\n // subscribe to events\n this.emitter.on(['after-filtering', 'grouped-by-page'],\n () => this.refresh(tf.getValidRowsNb()));\n this.emitter.on(['rows-changed'], () => this.refresh());\n\n /** @inherited */\n this.initialized = true;\n this.refresh();\n }\n\n /**\n * Refreshes the rows counter\n * @param {Number} p Optional parameter the total number of rows to display\n * @returns\n */\n refresh(p) {\n if (!this.initialized || !this.isEnabled()) {\n return;\n }\n\n let tf = this.tf;\n\n this.onBeforeRefreshCounter(tf, this.label);\n\n let totTxt;\n if (!tf.paging) {\n if (p && p !== '') {\n totTxt = p;\n } else {\n totTxt = tf.getFilterableRowsNb() - tf.nbHiddenRows;\n }\n } else {\n let paging = tf.feature('paging');\n if (paging) {\n //paging start row\n let pagingStartRow = parseInt(paging.startPagingRow, 10) +\n ((tf.getValidRowsNb() > 0) ? 1 : 0);\n let pagingEndRow =\n (pagingStartRow + paging.pagingLength) - 1 <=\n tf.getValidRowsNb() ?\n pagingStartRow + paging.pagingLength - 1 :\n tf.getValidRowsNb();\n totTxt = pagingStartRow + this.fromToTextSeparator +\n pagingEndRow + this.overText + tf.getValidRowsNb();\n }\n }\n\n this.label.innerHTML = totTxt;\n this.onAfterRefreshCounter(tf, this.label, totTxt);\n }\n\n /**\n * Remove feature\n */\n destroy() {\n if (!this.initialized) {\n return;\n }\n\n if (!this.targetId && this.container) {\n removeElm(this.container);\n } else {\n elm(this.targetId).innerHTML = '';\n }\n this.label = null;\n this.container = null;\n\n // unsubscribe to events\n this.emitter.off(['after-filtering', 'grouped-by-page'],\n () => this.refresh(tf.getValidRowsNb()));\n this.emitter.off(['rows-changed'], () => this.refresh());\n\n this.initialized = false;\n }\n}\n" }, { - "__docId__": 632, + "__docId__": 636, "kind": "class", "static": true, "variation": null, @@ -13393,7 +13467,7 @@ ] }, { - "__docId__": 633, + "__docId__": 637, "kind": "constructor", "static": false, "variation": null, @@ -13418,7 +13492,7 @@ "generator": false }, { - "__docId__": 634, + "__docId__": 638, "kind": "member", "static": false, "variation": null, @@ -13438,7 +13512,7 @@ } }, { - "__docId__": 635, + "__docId__": 639, "kind": "member", "static": false, "variation": null, @@ -13458,7 +13532,7 @@ } }, { - "__docId__": 636, + "__docId__": 640, "kind": "member", "static": false, "variation": null, @@ -13478,7 +13552,7 @@ } }, { - "__docId__": 637, + "__docId__": 641, "kind": "member", "static": false, "variation": null, @@ -13498,7 +13572,7 @@ } }, { - "__docId__": 638, + "__docId__": 642, "kind": "member", "static": false, "variation": null, @@ -13518,7 +13592,7 @@ } }, { - "__docId__": 639, + "__docId__": 643, "kind": "member", "static": false, "variation": null, @@ -13538,7 +13612,7 @@ } }, { - "__docId__": 640, + "__docId__": 644, "kind": "member", "static": false, "variation": null, @@ -13558,7 +13632,7 @@ } }, { - "__docId__": 641, + "__docId__": 645, "kind": "member", "static": false, "variation": null, @@ -13578,7 +13652,7 @@ } }, { - "__docId__": 642, + "__docId__": 646, "kind": "member", "static": false, "variation": null, @@ -13598,7 +13672,7 @@ } }, { - "__docId__": 643, + "__docId__": 647, "kind": "method", "static": false, "variation": null, @@ -13612,7 +13686,7 @@ "generator": false }, { - "__docId__": 644, + "__docId__": 648, "kind": "member", "static": false, "variation": null, @@ -13630,7 +13704,7 @@ } }, { - "__docId__": 645, + "__docId__": 649, "kind": "member", "static": false, "variation": null, @@ -13648,7 +13722,7 @@ } }, { - "__docId__": 646, + "__docId__": 650, "kind": "member", "static": false, "variation": null, @@ -13671,7 +13745,7 @@ } }, { - "__docId__": 647, + "__docId__": 651, "kind": "method", "static": false, "variation": null, @@ -13702,7 +13776,7 @@ "generator": false }, { - "__docId__": 648, + "__docId__": 652, "kind": "method", "static": false, "variation": null, @@ -13716,7 +13790,7 @@ "generator": false }, { - "__docId__": 649, + "__docId__": 653, "kind": "member", "static": false, "variation": null, @@ -13734,7 +13808,7 @@ } }, { - "__docId__": 650, + "__docId__": 654, "kind": "member", "static": false, "variation": null, @@ -13752,7 +13826,7 @@ } }, { - "__docId__": 651, + "__docId__": 655, "kind": "member", "static": false, "variation": null, @@ -13770,7 +13844,7 @@ } }, { - "__docId__": 652, + "__docId__": 656, "kind": "file", "static": true, "variation": null, @@ -13783,7 +13857,7 @@ "content": "import {Feature} from '../feature';\nimport {Hash} from './hash';\nimport {Storage} from './storage';\nimport {isEmpty} from '../string';\nimport {isArray, isNull, isString, isUndef} from '../types';\n\n/**\n * Features state object persistable with localStorage, cookie or URL hash\n *\n * @export\n * @class State\n * @extends {Feature}\n */\nexport class State extends Feature {\n\n /**\n * Creates an instance of State\n * @param {TableFilter} tf TableFilter instance\n */\n constructor(tf) {\n super(tf, 'state');\n\n let cfg = this.config.state;\n\n /**\n * Determines whether state is persisted with URL hash\n * @type {Boolean}\n */\n this.enableHash = cfg === true ||\n (isArray(cfg.types) && cfg.types.indexOf('hash') !== -1);\n\n /**\n * Determines whether state is persisted with localStorage\n * @type {Boolean}\n */\n this.enableLocalStorage = isArray(cfg.types) &&\n cfg.types.indexOf('local_storage') !== -1;\n\n /**\n * Determines whether state is persisted with localStorage\n * @type {Boolean}\n */\n this.enableCookie = isArray(cfg.types) &&\n cfg.types.indexOf('cookie') !== -1;\n\n /**\n * Persist filters values, enabled by default\n * @type {Boolean}\n */\n this.persistFilters = cfg.filters === false ? false : true;\n\n /**\n * Persist current page number when paging is enabled\n * @type {Boolean}\n */\n this.persistPageNumber = Boolean(cfg.page_number);\n\n /**\n * Persist page length when paging is enabled\n * @type {Boolean}\n */\n this.persistPageLength = Boolean(cfg.page_length);\n\n /**\n * Persist column sorting\n * @type {Boolean}\n */\n this.persistSort = Boolean(cfg.sort);\n\n /**\n * Persist columns visibility\n * @type {Boolean}\n */\n this.persistColsVisibility = Boolean(cfg.columns_visibility);\n\n /**\n * Persist filters row visibility\n * @type {Boolean}\n */\n this.persistFiltersVisibility = Boolean(cfg.filters_visibility);\n\n /**\n * Cookie duration in hours\n * @type {Boolean}\n */\n this.cookieDuration = !isNaN(cfg.cookie_duration) ?\n parseInt(cfg.cookie_duration, 10) : 87600;\n\n /**\n * Enable Storage if localStorage or cookie is required\n * @type {Boolean}\n * @private\n */\n this.enableStorage = this.enableLocalStorage || this.enableCookie;\n\n /**\n * Storage instance if storage is required\n * @type {Storage}\n * @private\n */\n this.storage = null;\n\n /**\n * Hash instance if URL hash is required\n * @type {Boolean}\n * @private\n */\n this.hash = null;\n\n /**\n * Current page number\n * @type {Number}\n * @private\n */\n this.pageNb = null;\n\n /**\n * Current page length\n * @type {Number}\n * @private\n */\n this.pageLength = null;\n\n /**\n * Current column sorting\n * @type {Object}\n * @private\n */\n this.sort = null;\n\n /**\n * Current hidden columns\n * @type {Object}\n * @private\n */\n this.hiddenCols = null;\n\n /**\n * Filters row visibility\n * @type {Boolean}\n * @private\n */\n this.filtersVisibility = null;\n\n /**\n * State object\n * @type {Object}\n * @private\n */\n this.state = {};\n\n /**\n * Prefix for column ID\n * @type {String}\n * @private\n */\n this.prfxCol = 'col_';\n\n /**\n * Prefix for page number ID\n * @type {String}\n * @private\n */\n this.pageNbKey = 'page';\n\n /**\n * Prefix for page length ID\n * @type {String}\n * @private\n */\n this.pageLengthKey = 'page_length';\n\n /**\n * Prefix for filters visibility ID\n * @type {String}\n * @private\n */\n this.filtersVisKey = 'filters_visibility';\n }\n\n /**\n * Initializes State instance\n */\n init() {\n if (this.initialized) {\n return;\n }\n\n this.emitter.on(['after-filtering'], () => this.update());\n this.emitter.on(['after-page-change', 'after-clearing-filters'],\n (tf, pageNb) => this.updatePage(pageNb));\n this.emitter.on(['after-page-length-change'],\n (tf, pageLength) => this.updatePageLength(pageLength));\n this.emitter.on(['column-sorted'],\n (tf, index, descending) => this.updateSort(index, descending));\n this.emitter.on(['sort-initialized'], () => this._syncSort());\n this.emitter.on(['columns-visibility-initialized'],\n () => this._syncColsVisibility());\n this.emitter.on(['column-shown', 'column-hidden'], (tf, feature,\n colIndex, hiddenCols) => this.updateColsVisibility(hiddenCols));\n this.emitter.on(['filters-visibility-initialized'],\n () => this._syncFiltersVisibility());\n this.emitter.on(['filters-toggled'],\n (tf, extension, visible) => this.updateFiltersVisibility(visible));\n\n if (this.enableHash) {\n this.hash = new Hash(this);\n this.hash.init();\n }\n if (this.enableStorage) {\n this.storage = new Storage(this);\n this.storage.init();\n }\n\n /**\n * @inherited\n */\n this.initialized = true;\n }\n\n\n /**\n * Update state object based on current features state\n */\n update() {\n if (!this.isEnabled()) {\n return;\n }\n let state = this.state;\n let tf = this.tf;\n\n if (this.persistFilters) {\n let filterValues = tf.getFiltersValue();\n\n filterValues.forEach((val, idx) => {\n let key = `${this.prfxCol}${idx}`;\n\n if (isString(val) && isEmpty(val)) {\n if (state.hasOwnProperty(key)) {\n state[key].flt = undefined;\n }\n } else {\n state[key] = state[key] || {};\n state[key].flt = val;\n }\n });\n }\n\n if (this.persistPageNumber) {\n if (isNull(this.pageNb)) {\n state[this.pageNbKey] = undefined;\n } else {\n state[this.pageNbKey] = this.pageNb;\n }\n }\n\n if (this.persistPageLength) {\n if (isNull(this.pageLength)) {\n state[this.pageLengthKey] = undefined;\n } else {\n state[this.pageLengthKey] = this.pageLength;\n }\n }\n\n if (this.persistSort) {\n if (!isNull(this.sort)) {\n // Remove previuosly sorted column\n Object.keys(state).forEach((key) => {\n if (key.indexOf(this.prfxCol) !== -1 && state[key]) {\n state[key].sort = undefined;\n }\n });\n\n let key = `${this.prfxCol}${this.sort.column}`;\n state[key] = state[key] || {};\n state[key].sort = { descending: this.sort.descending };\n }\n }\n\n if (this.persistColsVisibility) {\n if (!isNull(this.hiddenCols)) {\n // Clear previuosly hidden columns\n Object.keys(state).forEach((key) => {\n if (key.indexOf(this.prfxCol) !== -1 && state[key]) {\n state[key].hidden = undefined;\n }\n });\n\n this.hiddenCols.forEach((colIdx) => {\n let key = `${this.prfxCol}${colIdx}`;\n state[key] = state[key] || {};\n state[key].hidden = true;\n });\n }\n }\n\n if (this.persistFiltersVisibility) {\n if (isNull(this.filtersVisibility)) {\n state[this.filtersVisKey] = undefined;\n } else {\n state[this.filtersVisKey] = this.filtersVisibility;\n }\n }\n\n this.emitter.emit('state-changed', tf, state);\n }\n\n /**\n * Refresh page number field on page number changes\n *\n * @param {Number} pageNb Current page number\n */\n updatePage(pageNb) {\n this.pageNb = pageNb;\n this.update();\n }\n\n /**\n * Refresh page length field on page length changes\n *\n * @param {Number} pageLength Current page length value\n */\n updatePageLength(pageLength) {\n this.pageLength = pageLength;\n this.update();\n }\n\n /**\n * Refresh column sorting information on sort changes\n *\n * @param index {Number} Column index\n * @param {Boolean} descending Descending manner\n */\n updateSort(index, descending) {\n this.sort = {\n column: index,\n descending: descending\n };\n this.update();\n }\n\n /**\n * Refresh hidden columns information on columns visibility changes\n *\n * @param {Array} hiddenCols Columns indexes\n */\n updateColsVisibility(hiddenCols) {\n this.hiddenCols = hiddenCols;\n this.update();\n }\n\n /**\n * Refresh filters visibility on filters visibility change\n *\n * @param {Boolean} visible Visibility flad\n */\n updateFiltersVisibility(visible) {\n this.filtersVisibility = visible;\n this.update();\n }\n\n /**\n * Override state field\n *\n * @param state State object\n */\n override(state) {\n this.state = state;\n }\n\n /**\n * Sync stored features state\n */\n sync() {\n let state = this.state;\n let tf = this.tf;\n\n this._syncFilters();\n\n if (this.persistPageNumber) {\n let pageNumber = state[this.pageNbKey];\n this.emitter.emit('change-page', tf, pageNumber);\n }\n\n if (this.persistPageLength) {\n let pageLength = state[this.pageLengthKey];\n this.emitter.emit('change-page-results', tf, pageLength);\n }\n\n this._syncSort();\n this._syncColsVisibility();\n this._syncFiltersVisibility();\n }\n\n /**\n * Override current state with passed one and sync features\n *\n * @param {Object} state State object\n */\n overrideAndSync(state) {\n // To prevent state to react to features changes, state is temporarily\n // disabled\n this.disable();\n // State is overriden with passed state object\n this.override(state);\n // New hash state is applied to features\n this.sync();\n // State is re-enabled\n this.enable();\n }\n\n /**\n * Sync filters with stored values and filter table\n *\n * @private\n */\n _syncFilters() {\n if (!this.persistFilters) {\n return;\n }\n let state = this.state;\n let tf = this.tf;\n\n Object.keys(state).forEach((key) => {\n if (key.indexOf(this.prfxCol) !== -1) {\n let colIdx = parseInt(key.replace(this.prfxCol, ''), 10);\n let val = state[key].flt;\n tf.setFilterValue(colIdx, val);\n }\n });\n\n tf.filter();\n }\n\n /**\n * Sync sorted column with stored sorting information and sort table\n *\n * @private\n */\n _syncSort() {\n if (!this.persistSort) {\n return;\n }\n let state = this.state;\n let tf = this.tf;\n\n Object.keys(state).forEach((key) => {\n if (key.indexOf(this.prfxCol) !== -1) {\n let colIdx = parseInt(key.replace(this.prfxCol, ''), 10);\n if (!isUndef(state[key].sort)) {\n let sort = state[key].sort;\n this.emitter.emit('sort', tf, colIdx, sort.descending);\n }\n }\n });\n }\n\n /**\n * Sync hidden columns with stored information\n *\n * @private\n */\n _syncColsVisibility() {\n if (!this.persistColsVisibility) {\n return;\n }\n let state = this.state;\n let tf = this.tf;\n let hiddenCols = [];\n\n Object.keys(state).forEach((key) => {\n if (key.indexOf(this.prfxCol) !== -1) {\n let colIdx = parseInt(key.replace(this.prfxCol, ''), 10);\n if (!isUndef(state[key].hidden)) {\n hiddenCols.push(colIdx);\n }\n }\n });\n\n hiddenCols.forEach((colIdx) => {\n this.emitter.emit('hide-column', tf, colIdx);\n });\n }\n\n /**\n * Sync filters visibility with stored information\n *\n * @private\n */\n _syncFiltersVisibility() {\n if (!this.persistFiltersVisibility) {\n return;\n }\n let state = this.state;\n let tf = this.tf;\n let filtersVisibility = state[this.filtersVisKey];\n\n this.filtersVisibility = filtersVisibility;\n this.emitter.emit('show-filters', tf, filtersVisibility);\n }\n\n /**\n * Destroy State instance\n */\n destroy() {\n if (!this.initialized) {\n return;\n }\n\n this.state = {};\n\n this.emitter.off(['after-filtering'], () => this.update());\n this.emitter.off(['after-page-change', 'after-clearing-filters'],\n (tf, pageNb) => this.updatePage(pageNb));\n this.emitter.off(['after-page-length-change'],\n (tf, index) => this.updatePageLength(index));\n this.emitter.off(['column-sorted'],\n (tf, index, descending) => this.updateSort(index, descending));\n this.emitter.off(['sort-initialized'], () => this._syncSort());\n this.emitter.off(['columns-visibility-initialized'],\n () => this._syncColsVisibility());\n this.emitter.off(['column-shown', 'column-hidden'], (tf, feature,\n colIndex, hiddenCols) => this.updateColsVisibility(hiddenCols));\n this.emitter.off(['filters-visibility-initialized'],\n () => this._syncFiltersVisibility());\n this.emitter.off(['filters-toggled'],\n (tf, extension, visible) => this.updateFiltersVisibility(visible));\n\n if (this.enableHash) {\n this.hash.destroy();\n this.hash = null;\n }\n\n if (this.enableStorage) {\n this.storage.destroy();\n this.storage = null;\n }\n\n this.initialized = false;\n }\n}\n" }, { - "__docId__": 653, + "__docId__": 657, "kind": "class", "static": true, "variation": null, @@ -13812,7 +13886,7 @@ ] }, { - "__docId__": 654, + "__docId__": 658, "kind": "constructor", "static": false, "variation": null, @@ -13837,7 +13911,7 @@ "generator": false }, { - "__docId__": 655, + "__docId__": 659, "kind": "member", "static": false, "variation": null, @@ -13857,7 +13931,7 @@ } }, { - "__docId__": 656, + "__docId__": 660, "kind": "member", "static": false, "variation": null, @@ -13877,7 +13951,7 @@ } }, { - "__docId__": 657, + "__docId__": 661, "kind": "member", "static": false, "variation": null, @@ -13897,7 +13971,7 @@ } }, { - "__docId__": 658, + "__docId__": 662, "kind": "member", "static": false, "variation": null, @@ -13917,7 +13991,7 @@ } }, { - "__docId__": 659, + "__docId__": 663, "kind": "member", "static": false, "variation": null, @@ -13937,7 +14011,7 @@ } }, { - "__docId__": 660, + "__docId__": 664, "kind": "member", "static": false, "variation": null, @@ -13957,7 +14031,7 @@ } }, { - "__docId__": 661, + "__docId__": 665, "kind": "member", "static": false, "variation": null, @@ -13977,7 +14051,7 @@ } }, { - "__docId__": 662, + "__docId__": 666, "kind": "member", "static": false, "variation": null, @@ -13997,7 +14071,7 @@ } }, { - "__docId__": 663, + "__docId__": 667, "kind": "member", "static": false, "variation": null, @@ -14017,7 +14091,7 @@ } }, { - "__docId__": 664, + "__docId__": 668, "kind": "member", "static": false, "variation": null, @@ -14037,7 +14111,7 @@ } }, { - "__docId__": 665, + "__docId__": 669, "kind": "member", "static": false, "variation": null, @@ -14057,7 +14131,7 @@ } }, { - "__docId__": 666, + "__docId__": 670, "kind": "member", "static": false, "variation": null, @@ -14077,7 +14151,7 @@ } }, { - "__docId__": 667, + "__docId__": 671, "kind": "member", "static": false, "variation": null, @@ -14097,7 +14171,7 @@ } }, { - "__docId__": 668, + "__docId__": 672, "kind": "member", "static": false, "variation": null, @@ -14117,7 +14191,7 @@ } }, { - "__docId__": 669, + "__docId__": 673, "kind": "member", "static": false, "variation": null, @@ -14137,7 +14211,7 @@ } }, { - "__docId__": 670, + "__docId__": 674, "kind": "member", "static": false, "variation": null, @@ -14157,7 +14231,7 @@ } }, { - "__docId__": 671, + "__docId__": 675, "kind": "member", "static": false, "variation": null, @@ -14177,7 +14251,7 @@ } }, { - "__docId__": 672, + "__docId__": 676, "kind": "member", "static": false, "variation": null, @@ -14197,7 +14271,7 @@ } }, { - "__docId__": 673, + "__docId__": 677, "kind": "member", "static": false, "variation": null, @@ -14217,7 +14291,7 @@ } }, { - "__docId__": 674, + "__docId__": 678, "kind": "member", "static": false, "variation": null, @@ -14237,7 +14311,7 @@ } }, { - "__docId__": 675, + "__docId__": 679, "kind": "member", "static": false, "variation": null, @@ -14257,7 +14331,7 @@ } }, { - "__docId__": 676, + "__docId__": 680, "kind": "member", "static": false, "variation": null, @@ -14277,7 +14351,7 @@ } }, { - "__docId__": 677, + "__docId__": 681, "kind": "member", "static": false, "variation": null, @@ -14297,7 +14371,7 @@ } }, { - "__docId__": 678, + "__docId__": 682, "kind": "method", "static": false, "variation": null, @@ -14311,7 +14385,7 @@ "generator": false }, { - "__docId__": 679, + "__docId__": 683, "kind": "member", "static": false, "variation": null, @@ -14329,7 +14403,7 @@ } }, { - "__docId__": 680, + "__docId__": 684, "kind": "member", "static": false, "variation": null, @@ -14347,7 +14421,7 @@ } }, { - "__docId__": 681, + "__docId__": 685, "kind": "member", "static": false, "variation": null, @@ -14370,7 +14444,7 @@ } }, { - "__docId__": 682, + "__docId__": 686, "kind": "method", "static": false, "variation": null, @@ -14384,7 +14458,7 @@ "generator": false }, { - "__docId__": 683, + "__docId__": 687, "kind": "method", "static": false, "variation": null, @@ -14409,7 +14483,7 @@ "generator": false }, { - "__docId__": 684, + "__docId__": 688, "kind": "member", "static": false, "variation": null, @@ -14427,7 +14501,7 @@ } }, { - "__docId__": 685, + "__docId__": 689, "kind": "method", "static": false, "variation": null, @@ -14452,7 +14526,7 @@ "generator": false }, { - "__docId__": 686, + "__docId__": 690, "kind": "member", "static": false, "variation": null, @@ -14470,7 +14544,7 @@ } }, { - "__docId__": 687, + "__docId__": 691, "kind": "method", "static": false, "variation": null, @@ -14505,7 +14579,7 @@ "generator": false }, { - "__docId__": 688, + "__docId__": 692, "kind": "member", "static": false, "variation": null, @@ -14523,7 +14597,7 @@ } }, { - "__docId__": 689, + "__docId__": 693, "kind": "method", "static": false, "variation": null, @@ -14548,7 +14622,7 @@ "generator": false }, { - "__docId__": 690, + "__docId__": 694, "kind": "member", "static": false, "variation": null, @@ -14566,7 +14640,7 @@ } }, { - "__docId__": 691, + "__docId__": 695, "kind": "method", "static": false, "variation": null, @@ -14591,7 +14665,7 @@ "generator": false }, { - "__docId__": 692, + "__docId__": 696, "kind": "member", "static": false, "variation": null, @@ -14609,7 +14683,7 @@ } }, { - "__docId__": 693, + "__docId__": 697, "kind": "method", "static": false, "variation": null, @@ -14634,7 +14708,7 @@ "generator": false }, { - "__docId__": 694, + "__docId__": 698, "kind": "member", "static": false, "variation": null, @@ -14652,7 +14726,7 @@ } }, { - "__docId__": 695, + "__docId__": 699, "kind": "method", "static": false, "variation": null, @@ -14666,7 +14740,7 @@ "generator": false }, { - "__docId__": 696, + "__docId__": 700, "kind": "method", "static": false, "variation": null, @@ -14691,7 +14765,7 @@ "generator": false }, { - "__docId__": 697, + "__docId__": 701, "kind": "method", "static": false, "variation": null, @@ -14705,7 +14779,7 @@ "generator": false }, { - "__docId__": 698, + "__docId__": 702, "kind": "method", "static": false, "variation": null, @@ -14719,7 +14793,7 @@ "generator": false }, { - "__docId__": 699, + "__docId__": 703, "kind": "method", "static": false, "variation": null, @@ -14733,7 +14807,7 @@ "generator": false }, { - "__docId__": 700, + "__docId__": 704, "kind": "method", "static": false, "variation": null, @@ -14747,7 +14821,7 @@ "generator": false }, { - "__docId__": 701, + "__docId__": 705, "kind": "member", "static": false, "variation": null, @@ -14765,7 +14839,7 @@ } }, { - "__docId__": 702, + "__docId__": 706, "kind": "method", "static": false, "variation": null, @@ -14779,7 +14853,7 @@ "generator": false }, { - "__docId__": 703, + "__docId__": 707, "kind": "member", "static": false, "variation": null, @@ -14797,7 +14871,7 @@ } }, { - "__docId__": 704, + "__docId__": 708, "kind": "member", "static": false, "variation": null, @@ -14815,7 +14889,7 @@ } }, { - "__docId__": 705, + "__docId__": 709, "kind": "member", "static": false, "variation": null, @@ -14833,7 +14907,7 @@ } }, { - "__docId__": 706, + "__docId__": 710, "kind": "member", "static": false, "variation": null, @@ -14851,7 +14925,7 @@ } }, { - "__docId__": 707, + "__docId__": 711, "kind": "file", "static": true, "variation": null, @@ -14864,7 +14938,7 @@ "content": "import {Feature} from '../feature';\nimport {root} from '../root';\nimport {createElm, createText, elm, removeElm} from '../dom';\nimport {isFn, EMPTY_FN} from '../types';\n\nconst EVENTS = [\n 'after-filtering',\n 'after-populating-filter',\n 'after-page-change',\n 'after-clearing-filters',\n 'after-page-length-change',\n 'after-reset-page',\n 'after-reset-page-length',\n 'after-loading-extensions',\n 'after-loading-themes'\n];\n\n/**\n * Status bar UI component\n * @export\n * @class StatusBar\n * @extends {Feature}\n */\nexport class StatusBar extends Feature {\n\n /**\n * Creates an instance of StatusBar\n * @param {TableFilter} tf TableFilter instance\n */\n constructor(tf) {\n super(tf, 'statusBar');\n\n // Configuration object\n let f = this.config;\n\n /**\n * ID of custom container element\n * @type {String}\n */\n this.targetId = f.status_bar_target_id || null;\n\n /**\n * Container DOM element\n * @type {DOMElement}\n * @private\n */\n this.container = null;\n\n /**\n * Message container DOM element\n * @type {DOMElement}\n * @private\n */\n this.msgContainer = null;\n\n /**\n * Label container DOM element\n * @type {DOMElement}\n * @private\n */\n this.labelContainer = null;\n\n /**\n * Text preceding status message\n * @type {String}\n */\n this.text = f.status_bar_text || '';\n\n /**\n * Css class for container element\n * @type {String}\n */\n this.cssClass = f.status_bar_css_class || 'status';\n\n /**\n * Message visibility duration in milliseconds\n * @type {Number}\n * @private\n */\n this.delay = 250;\n\n /**\n * Callback fired before the message is displayed\n * @type {Function}\n */\n this.onBeforeShowMsg = isFn(f.on_before_show_msg) ?\n f.on_before_show_msg : EMPTY_FN;\n\n /**\n * Callback fired after the message is displayed\n * @type {Function}\n */\n this.onAfterShowMsg = isFn(f.on_after_show_msg) ?\n f.on_after_show_msg : EMPTY_FN;\n\n /**\n * Message appearing upon filtering\n * @type {String}\n */\n this.msgFilter = f.msg_filter || 'Filtering data...';\n\n /**\n * Message appearing when a drop-down filter is populated\n * @type {String}\n */\n this.msgPopulate = f.msg_populate || 'Populating filter...';\n\n /**\n * Message appearing when a checklist filter is populated\n * @type {String}\n */\n this.msgPopulateCheckList = f.msg_populate_checklist ||\n 'Populating list...';\n\n /**\n * Message appearing when a pagination page is changed\n * @type {String}\n */\n this.msgChangePage = f.msg_change_page || 'Collecting paging data...';\n\n /**\n * Message appearing when filters are cleared\n * @type {String}\n */\n this.msgClear = f.msg_clear || 'Clearing filters...';\n\n /**\n * Message appearing when the page length is changed\n * @type {String}\n */\n this.msgChangeResults = f.msg_change_results ||\n 'Changing results per page...';\n\n /**\n * Message appearing when the page is re-set\n * @type {String}\n */\n this.msgResetPage = f.msg_reset_page || 'Re-setting page...';\n\n /**\n * Message appearing when the page length is re-set\n * @type {String}\n */\n this.msgResetPageLength = f.msg_reset_page_length ||\n 'Re-setting page length...';\n\n /**\n * Message appearing upon column sorting\n * @type {String}\n */\n this.msgSort = f.msg_sort || 'Sorting data...';\n\n /**\n * Message appearing when extensions are loading\n * @type {String}\n */\n this.msgLoadExtensions = f.msg_load_extensions ||\n 'Loading extensions...';\n\n /**\n * Message appearing when themes are loading\n * @type {String}\n */\n this.msgLoadThemes = f.msg_load_themes || 'Loading theme(s)...';\n }\n\n /**\n * Initializes StatusBar instance\n */\n init() {\n if (this.initialized) {\n return;\n }\n\n let tf = this.tf;\n let emitter = this.emitter;\n\n //status bar container\n let statusDiv = createElm('div');\n statusDiv.className = this.cssClass;\n\n //status bar label\n let statusSpan = createElm('span');\n //preceding text\n let statusSpanText = createElm('span');\n statusSpanText.appendChild(createText(this.text));\n\n // target element container\n if (!this.targetId) {\n tf.setToolbar();\n }\n let targetEl = (!this.targetId) ? tf.lDiv : elm(this.targetId);\n\n //default container: 'lDiv'\n if (!this.targetId) {\n statusDiv.appendChild(statusSpanText);\n statusDiv.appendChild(statusSpan);\n targetEl.appendChild(statusDiv);\n } else {\n // custom container, no need to append statusDiv\n targetEl.appendChild(statusSpanText);\n targetEl.appendChild(statusSpan);\n }\n\n this.container = statusDiv;\n this.msgContainer = statusSpan;\n this.labelContainer = statusSpanText;\n\n // Subscribe to events\n emitter.on(['before-filtering'], () => this.message(this.msgFilter));\n emitter.on(['before-populating-filter'],\n () => this.message(this.msgPopulate));\n emitter.on(['before-page-change'],\n () => this.message(this.msgChangePage));\n emitter.on(['before-clearing-filters'], () =>\n this.message(this.msgClear));\n emitter.on(['before-page-length-change'],\n () => this.message(this.msgChangeResults));\n emitter.on(['before-reset-page'],\n () => this.message(this.msgResetPage));\n emitter.on(['before-reset-page-length'],\n () => this.message(this.msgResetPageLength));\n emitter.on(['before-loading-extensions'],\n () => this.message(this.msgLoadExtensions));\n emitter.on(['before-loading-themes'],\n () => this.message(this.msgLoadThemes));\n\n emitter.on(EVENTS, () => this.message(''));\n\n /**\n * @inherited\n */\n this.initialized = true;\n }\n\n /**\n * Display status message\n * @param {String} [t=''] Message to be displayed\n */\n message(t = '') {\n if (!this.isEnabled()) {\n return;\n }\n\n this.onBeforeShowMsg(this.tf, t);\n\n let d = t === '' ? this.delay : 1;\n root.setTimeout(() => {\n if (!this.initialized) {\n return;\n }\n this.msgContainer.innerHTML = t;\n\n this.onAfterShowMsg(this.tf, t);\n }, d);\n }\n\n /**\n * Destroy StatusBar instance\n */\n destroy() {\n if (!this.initialized) {\n return;\n }\n\n let emitter = this.emitter;\n\n this.container.innerHTML = '';\n if (!this.targetId) {\n removeElm(this.container);\n }\n this.labelContainer = null;\n this.msgContainer = null;\n this.container = null;\n\n // Unsubscribe to events\n emitter.off(['before-filtering'], () => this.message(this.msgFilter));\n emitter.off(['before-populating-filter'],\n () => this.message(this.msgPopulate));\n emitter.off(['before-page-change'],\n () => this.message(this.msgChangePage));\n emitter.off(['before-clearing-filters'],\n () => this.message(this.msgClear));\n emitter.off(['before-page-length-change'],\n () => this.message(this.msgChangeResults));\n emitter.off(['before-reset-page'], () =>\n this.message(this.msgResetPage));\n emitter.off(['before-reset-page-length'],\n () => this.message(this.msgResetPageLength));\n emitter.off(['before-loading-extensions'],\n () => this.message(this.msgLoadExtensions));\n emitter.off(['before-loading-themes'],\n () => this.message(this.msgLoadThemes));\n\n emitter.off(EVENTS, () => this.message(''));\n\n this.initialized = false;\n }\n}\n" }, { - "__docId__": 708, + "__docId__": 712, "kind": "variable", "static": true, "variation": null, @@ -14885,7 +14959,7 @@ } }, { - "__docId__": 709, + "__docId__": 713, "kind": "class", "static": true, "variation": null, @@ -14914,7 +14988,7 @@ ] }, { - "__docId__": 710, + "__docId__": 714, "kind": "constructor", "static": false, "variation": null, @@ -14939,7 +15013,7 @@ "generator": false }, { - "__docId__": 711, + "__docId__": 715, "kind": "member", "static": false, "variation": null, @@ -14959,7 +15033,7 @@ } }, { - "__docId__": 712, + "__docId__": 716, "kind": "member", "static": false, "variation": null, @@ -14979,7 +15053,7 @@ } }, { - "__docId__": 713, + "__docId__": 717, "kind": "member", "static": false, "variation": null, @@ -14999,7 +15073,7 @@ } }, { - "__docId__": 714, + "__docId__": 718, "kind": "member", "static": false, "variation": null, @@ -15019,7 +15093,7 @@ } }, { - "__docId__": 715, + "__docId__": 719, "kind": "member", "static": false, "variation": null, @@ -15039,7 +15113,7 @@ } }, { - "__docId__": 716, + "__docId__": 720, "kind": "member", "static": false, "variation": null, @@ -15059,7 +15133,7 @@ } }, { - "__docId__": 717, + "__docId__": 721, "kind": "member", "static": false, "variation": null, @@ -15079,7 +15153,7 @@ } }, { - "__docId__": 718, + "__docId__": 722, "kind": "member", "static": false, "variation": null, @@ -15099,7 +15173,7 @@ } }, { - "__docId__": 719, + "__docId__": 723, "kind": "member", "static": false, "variation": null, @@ -15119,7 +15193,7 @@ } }, { - "__docId__": 720, + "__docId__": 724, "kind": "member", "static": false, "variation": null, @@ -15139,7 +15213,7 @@ } }, { - "__docId__": 721, + "__docId__": 725, "kind": "member", "static": false, "variation": null, @@ -15159,7 +15233,7 @@ } }, { - "__docId__": 722, + "__docId__": 726, "kind": "member", "static": false, "variation": null, @@ -15179,7 +15253,7 @@ } }, { - "__docId__": 723, + "__docId__": 727, "kind": "member", "static": false, "variation": null, @@ -15199,7 +15273,7 @@ } }, { - "__docId__": 724, + "__docId__": 728, "kind": "member", "static": false, "variation": null, @@ -15219,7 +15293,7 @@ } }, { - "__docId__": 725, + "__docId__": 729, "kind": "member", "static": false, "variation": null, @@ -15239,7 +15313,7 @@ } }, { - "__docId__": 726, + "__docId__": 730, "kind": "member", "static": false, "variation": null, @@ -15259,7 +15333,7 @@ } }, { - "__docId__": 727, + "__docId__": 731, "kind": "member", "static": false, "variation": null, @@ -15279,7 +15353,7 @@ } }, { - "__docId__": 728, + "__docId__": 732, "kind": "member", "static": false, "variation": null, @@ -15299,7 +15373,7 @@ } }, { - "__docId__": 729, + "__docId__": 733, "kind": "member", "static": false, "variation": null, @@ -15319,7 +15393,7 @@ } }, { - "__docId__": 730, + "__docId__": 734, "kind": "member", "static": false, "variation": null, @@ -15339,7 +15413,7 @@ } }, { - "__docId__": 731, + "__docId__": 735, "kind": "method", "static": false, "variation": null, @@ -15353,7 +15427,7 @@ "generator": false }, { - "__docId__": 732, + "__docId__": 736, "kind": "member", "static": false, "variation": null, @@ -15371,7 +15445,7 @@ } }, { - "__docId__": 733, + "__docId__": 737, "kind": "member", "static": false, "variation": null, @@ -15389,7 +15463,7 @@ } }, { - "__docId__": 734, + "__docId__": 738, "kind": "member", "static": false, "variation": null, @@ -15407,7 +15481,7 @@ } }, { - "__docId__": 735, + "__docId__": 739, "kind": "member", "static": false, "variation": null, @@ -15430,7 +15504,7 @@ } }, { - "__docId__": 736, + "__docId__": 740, "kind": "method", "static": false, "variation": null, @@ -15457,7 +15531,7 @@ "generator": false }, { - "__docId__": 737, + "__docId__": 741, "kind": "method", "static": false, "variation": null, @@ -15471,7 +15545,7 @@ "generator": false }, { - "__docId__": 738, + "__docId__": 742, "kind": "member", "static": false, "variation": null, @@ -15489,7 +15563,7 @@ } }, { - "__docId__": 739, + "__docId__": 743, "kind": "member", "static": false, "variation": null, @@ -15507,7 +15581,7 @@ } }, { - "__docId__": 740, + "__docId__": 744, "kind": "member", "static": false, "variation": null, @@ -15525,7 +15599,7 @@ } }, { - "__docId__": 741, + "__docId__": 745, "kind": "member", "static": false, "variation": null, @@ -15543,7 +15617,7 @@ } }, { - "__docId__": 742, + "__docId__": 746, "kind": "file", "static": true, "variation": null, @@ -15556,7 +15630,7 @@ "content": "\nimport Cookie from '../cookie';\nimport {root} from '../root';\n\nconst JSON = root.JSON;\nconst localStorage = root.localStorage;\nconst location = root.location;\n\n/**\n * Checks if browser has Storage feature\n */\nexport const hasStorage = () => {\n return 'Storage' in root;\n};\n\n/**\n * Stores the features state in browser's local storage or cookie\n *\n * @export\n * @class Storage\n */\nexport class Storage {\n\n /**\n * Creates an instance of Storage\n *\n * @param {State} state Instance of State\n */\n constructor(state) {\n\n /**\n * State object\n * @type {State}\n * @private\n */\n this.state = state;\n\n /**\n * TableFilter object\n * @type {TableFilter}\n * @private\n */\n this.tf = state.tf;\n\n /**\n * Persist with local storage\n * @type {Boolean}\n * @private\n */\n this.enableLocalStorage = state.enableLocalStorage && hasStorage();\n\n /**\n * Persist with cookie\n * @type {Boolean}\n * @private\n */\n this.enableCookie = state.enableCookie && !this.enableLocalStorage;\n\n /**\n * Emitter object\n * @type {Emitter}\n * @private\n */\n this.emitter = state.emitter;\n\n /**\n * Cookie duration in hours from state object\n * @type {Number}\n * @private\n */\n this.duration = state.cookieDuration;\n }\n\n\n /**\n * Initializes the Storage object\n */\n init() {\n this.emitter.on(['state-changed'], (tf, state) => this.save(state));\n this.emitter.on(['initialized'], () => this.sync());\n }\n\n /**\n * Persists the features state on state changes\n *\n * @param {State} state Instance of State\n */\n save(state) {\n if (this.enableLocalStorage) {\n localStorage[this.getKey()] = JSON.stringify(state);\n } else {\n Cookie.write(this.getKey(), JSON.stringify(state), this.duration);\n }\n }\n\n /**\n * Turns stored string into a State JSON object\n *\n * @returns {Object} JSON object\n */\n retrieve() {\n let state = null;\n if (this.enableLocalStorage) {\n state = localStorage[this.getKey()];\n } else {\n state = Cookie.read(this.getKey());\n }\n\n if (!state) {\n return null;\n }\n return JSON.parse(state);\n }\n\n /**\n * Removes persisted state from storage\n */\n remove() {\n if (this.enableLocalStorage) {\n localStorage.removeItem(this.getKey());\n } else {\n Cookie.remove(this.getKey());\n }\n }\n\n /**\n * Applies persisted state to features\n */\n sync() {\n let state = this.retrieve();\n if (!state) {\n return;\n }\n // override current state with persisted one and sync features\n this.state.overrideAndSync(state);\n }\n\n /**\n * Returns the storage key\n *\n * @returns {String} Key\n */\n getKey() {\n return JSON.stringify({\n key: `${this.tf.prfxTf}_${this.tf.id}`,\n path: location.pathname\n });\n }\n\n /**\n * Release Storage event subscriptions and clear fields\n */\n destroy() {\n this.emitter.off(['state-changed'], (tf, state) => this.save(state));\n this.emitter.off(['initialized'], () => this.sync());\n\n this.remove();\n\n this.state = null;\n this.emitter = null;\n }\n}\n" }, { - "__docId__": 743, + "__docId__": 747, "kind": "variable", "static": true, "variation": null, @@ -15577,7 +15651,7 @@ } }, { - "__docId__": 744, + "__docId__": 748, "kind": "variable", "static": true, "variation": null, @@ -15598,7 +15672,7 @@ } }, { - "__docId__": 745, + "__docId__": 749, "kind": "variable", "static": true, "variation": null, @@ -15619,7 +15693,7 @@ } }, { - "__docId__": 746, + "__docId__": 750, "kind": "variable", "static": true, "variation": null, @@ -15639,7 +15713,7 @@ } }, { - "__docId__": 747, + "__docId__": 751, "kind": "class", "static": true, "variation": null, @@ -15665,7 +15739,7 @@ "interface": false }, { - "__docId__": 748, + "__docId__": 752, "kind": "constructor", "static": false, "variation": null, @@ -15690,7 +15764,7 @@ "generator": false }, { - "__docId__": 749, + "__docId__": 753, "kind": "member", "static": false, "variation": null, @@ -15710,7 +15784,7 @@ } }, { - "__docId__": 750, + "__docId__": 754, "kind": "member", "static": false, "variation": null, @@ -15730,7 +15804,7 @@ } }, { - "__docId__": 751, + "__docId__": 755, "kind": "member", "static": false, "variation": null, @@ -15750,7 +15824,7 @@ } }, { - "__docId__": 752, + "__docId__": 756, "kind": "member", "static": false, "variation": null, @@ -15770,7 +15844,7 @@ } }, { - "__docId__": 753, + "__docId__": 757, "kind": "member", "static": false, "variation": null, @@ -15790,7 +15864,7 @@ } }, { - "__docId__": 754, + "__docId__": 758, "kind": "member", "static": false, "variation": null, @@ -15810,7 +15884,7 @@ } }, { - "__docId__": 755, + "__docId__": 759, "kind": "method", "static": false, "variation": null, @@ -15824,7 +15898,7 @@ "generator": false }, { - "__docId__": 756, + "__docId__": 760, "kind": "method", "static": false, "variation": null, @@ -15849,7 +15923,7 @@ "generator": false }, { - "__docId__": 757, + "__docId__": 761, "kind": "method", "static": false, "variation": null, @@ -15877,7 +15951,7 @@ "generator": false }, { - "__docId__": 758, + "__docId__": 762, "kind": "method", "static": false, "variation": null, @@ -15891,7 +15965,7 @@ "generator": false }, { - "__docId__": 759, + "__docId__": 763, "kind": "method", "static": false, "variation": null, @@ -15905,7 +15979,7 @@ "generator": false }, { - "__docId__": 760, + "__docId__": 764, "kind": "method", "static": false, "variation": null, @@ -15933,7 +16007,7 @@ "generator": false }, { - "__docId__": 761, + "__docId__": 765, "kind": "method", "static": false, "variation": null, @@ -15947,7 +16021,7 @@ "generator": false }, { - "__docId__": 762, + "__docId__": 766, "kind": "member", "static": false, "variation": null, @@ -15965,7 +16039,7 @@ } }, { - "__docId__": 763, + "__docId__": 767, "kind": "member", "static": false, "variation": null, @@ -15983,7 +16057,7 @@ } }, { - "__docId__": 764, + "__docId__": 768, "kind": "file", "static": true, "variation": null, @@ -15996,7 +16070,7 @@ "content": "import {isNumber} from './types';\n\n/**\n * Takes a string, removes all formatting/cruft and returns the raw float value\n * @param {String} Formatted number\n * @param {String} Decimal type '.' or ','\n * @return {Number} Unformatted number\n *\n * https://github.com/openexchangerates/accounting.js/blob/master/accounting.js\n */\nexport const parse = (value, decimal = '.') => {\n // Return the value as-is if it's already a number\n if (isNumber(value)) {\n return value;\n }\n\n // Build regex to strip out everything except digits, decimal point and\n // minus sign\n let regex = new RegExp('[^0-9-' + decimal + ']', ['g']);\n let unformatted = parseFloat(\n ('' + value)\n .replace(/\\((.*)\\)/, '-$1') // replace bracketed values with negatives\n .replace(regex, '') // strip out any cruft\n .replace(decimal, '.') // make sure decimal point is standard\n );\n\n // This will fail silently\n return !isNaN(unformatted) ? unformatted : 0;\n}\n" }, { - "__docId__": 765, + "__docId__": 769, "kind": "variable", "static": true, "variation": null, @@ -16046,7 +16120,7 @@ } }, { - "__docId__": 766, + "__docId__": 770, "kind": "file", "static": true, "variation": null, @@ -16059,7 +16133,7 @@ "content": "/**\n * Export window or global object depending on the environment\n */\nexport const root = (typeof self === 'object' && self.self === self && self) ||\n (typeof global === 'object' && global.global === global && global) ||\n this;\n" }, { - "__docId__": 767, + "__docId__": 771, "kind": "variable", "static": true, "variation": null, @@ -16079,7 +16153,7 @@ } }, { - "__docId__": 768, + "__docId__": 772, "kind": "file", "static": true, "variation": null, @@ -16092,7 +16166,7 @@ "content": "/**\n * Sorting utilities\n */\n\n/**\n * Case insensitive compare function for passed strings\n * @param {String} First string\n * @param {String} Second string\n * @return {Number} -1 if first string lower than second one\n * 0 if first string same order as second one\n * 1 if first string greater than second one\n */\nexport const ignoreCase = (a, b) => {\n let x = a.toLowerCase();\n let y = b.toLowerCase();\n return ((x < y) ? -1 : ((x > y) ? 1 : 0));\n}\n\n/**\n * Sorts passed numbers in a ascending manner\n * @param {Number} First number\n * @param {Number} Second number\n * @param {Number} Negative, zero or positive number\n */\nexport const numSortAsc = (a, b) => (a - b);\n\n/**\n * Sorts passed numbers in a descending manner\n * @param {Number} First number\n * @param {Number} Second number\n * @param {Number} Negative, zero or positive number\n */\nexport const numSortDesc = (a, b) => (b - a);\n" }, { - "__docId__": 769, + "__docId__": 773, "kind": "variable", "static": true, "variation": null, @@ -16142,7 +16216,7 @@ } }, { - "__docId__": 770, + "__docId__": 774, "kind": "variable", "static": true, "variation": null, @@ -16194,7 +16268,7 @@ } }, { - "__docId__": 771, + "__docId__": 775, "kind": "variable", "static": true, "variation": null, @@ -16246,7 +16320,7 @@ } }, { - "__docId__": 772, + "__docId__": 776, "kind": "file", "static": true, "variation": null, @@ -16259,7 +16333,7 @@ "content": "import {remove as removeDiacritics} from 'diacritics';\n\n/**\n * String utilities\n */\n\n/**\n * Removes whitespace from both sides of passed string\n * @param {String} text\n * @return {String}\n */\nexport const trim = (text) => {\n if (text.trim) {\n return text.trim();\n }\n return text.replace(/^\\s*|\\s*$/g, '');\n}\n\n/**\n * Checks if passed string is empty\n * @param {String} text\n * @return {Boolean}\n */\nexport const isEmpty = (text) => trim(text) === '';\n\n/**\n * Makes regex safe string by escaping special characters from passed string\n * @param {String} text\n * @return {String} escaped string\n */\nexport const rgxEsc = (text) => {\n let chars = /[-\\/\\\\^$*+?.()|[\\]{}]/g;\n let escMatch = '\\\\$&';\n return String(text).replace(chars, escMatch);\n}\n\n/**\n * Returns passed string as lowercase if caseSensitive flag set false. By\n * default it returns the string with no casing changes.\n * @param {String} text\n * @return {String} string\n */\nexport const matchCase = (text, caseSensitive = false) => {\n if (!caseSensitive) {\n return text.toLowerCase();\n }\n return text;\n}\n\n/**\n * Checks if passed data contains the searched term\n * @param {String} term Searched term\n * @param {String} data Data string\n * @param {Boolean} exactMatch Exact match\n * @param {Boolean} caseSensitive Case sensitive\n * @param {Boolean} ignoreDiacritics Ignore diacritics\n * @return {Boolean}\n */\nexport const contains = (term, data, exactMatch = false, caseSensitive = false,\n ignoreDiacritics = false) => {\n // Improved by Cedric Wartel (cwl) automatic exact match for selects and\n // special characters are now filtered\n let regexp;\n let modifier = caseSensitive ? 'g' : 'gi';\n if (ignoreDiacritics) {\n term = removeDiacritics(term);\n data = removeDiacritics(data);\n }\n if (exactMatch) {\n regexp = new RegExp('(^\\\\s*)' + rgxEsc(term) + '(\\\\s*$)',\n modifier);\n } else {\n regexp = new RegExp(rgxEsc(term), modifier);\n }\n return regexp.test(data);\n}\n" }, { - "__docId__": 773, + "__docId__": 777, "kind": "variable", "static": true, "variation": null, @@ -16299,7 +16373,7 @@ } }, { - "__docId__": 774, + "__docId__": 778, "kind": "variable", "static": true, "variation": null, @@ -16339,7 +16413,7 @@ } }, { - "__docId__": 775, + "__docId__": 779, "kind": "variable", "static": true, "variation": null, @@ -16379,7 +16453,7 @@ } }, { - "__docId__": 776, + "__docId__": 780, "kind": "variable", "static": true, "variation": null, @@ -16419,7 +16493,7 @@ } }, { - "__docId__": 777, + "__docId__": 781, "kind": "variable", "static": true, "variation": null, @@ -16499,7 +16573,7 @@ } }, { - "__docId__": 778, + "__docId__": 782, "kind": "file", "static": true, "variation": null, @@ -16512,7 +16586,7 @@ "content": "import {addEvt, cancelEvt, stopEvt, targetEvt, keyCode} from './event';\nimport {\n addClass, createElm, createOpt, elm, getText, getFirstTextNode, hasClass,\n removeClass, removeElm, tag\n} from './dom';\nimport {contains, matchCase, rgxEsc, trim} from './string';\nimport {isEmpty as isEmptyString} from './string';\nimport {\n isArray, isEmpty, isFn, isNumber, isObj, isString, isUndef, EMPTY_FN\n} from './types';\nimport {parse as parseNb} from './number'\n\nimport {root} from './root';\nimport {Emitter} from './emitter';\nimport {GridLayout} from './modules/gridLayout';\nimport {Loader} from './modules/loader';\nimport {HighlightKeyword} from './modules/highlightKeywords';\nimport {PopupFilter} from './modules/popupFilter';\nimport {Dropdown} from './modules/dropdown';\nimport {CheckList} from './modules/checkList';\nimport {RowsCounter} from './modules/rowsCounter';\nimport {StatusBar} from './modules/statusBar';\nimport {Paging} from './modules/paging';\nimport {ClearButton} from './modules/clearButton';\nimport {Help} from './modules/help';\nimport {AlternateRows} from './modules/alternateRows';\nimport {NoResults} from './modules/noResults';\nimport {State} from './modules/state';\nimport {DateType} from './modules/dateType';\n\nimport {\n INPUT, SELECT, MULTIPLE, CHECKLIST, NONE,\n ENTER_KEY, TAB_KEY, ESC_KEY, UP_ARROW_KEY, DOWN_ARROW_KEY,\n CELL_TAG, AUTO_FILTER_DELAY, NUMBER, DATE, FORMATTED_NUMBER\n} from './const';\n\nlet doc = root.document;\n\n/**\n * Makes HTML tables filterable and a bit more :)\n *\n * @export\n * @class TableFilter\n */\nexport class TableFilter {\n\n /**\n * Creates an instance of TableFilter\n * requires `table` or `id` arguments, `row` and `configuration` optional\n * @param {DOMElement} table Table DOM element\n * @param {String} id Table id\n * @param {Number} row index indicating the 1st row\n * @param {Object} configuration object\n */\n constructor(...args) {\n /**\n * ID of current instance\n * @type {String}\n * @private\n */\n this.id = null;\n\n /**\n * Current version\n * @type {String}\n */\n this.version = '{VERSION}';\n\n /**\n * Current year\n * @type {Number}\n * @private\n */\n this.year = new Date().getFullYear();\n\n /**\n * HTML Table DOM element\n * @type {DOMElement}\n */\n this.tbl = null;\n\n /**\n * Calculated row's index from which starts filtering once filters\n * are generated\n * @type {Number}\n */\n this.refRow = null;\n\n /**\n * Index of the headers row\n * @type {Number}\n * @private\n */\n this.headersRow = null;\n\n /**\n * Configuration object\n * @type {Object}\n * @private\n */\n this.cfg = {};\n\n /**\n * Number of rows that can be filtered\n * @type {Number}\n * @private\n */\n this.nbFilterableRows = 0;\n\n /**\n * Number of cells in the reference row\n * @type {Number}\n * @private\n */\n this.nbCells = null;\n\n let startRow;\n\n // TODO: use for-of\n args.forEach((arg) => {\n if (typeof arg === 'object' && arg.nodeName === 'TABLE') {\n this.tbl = arg;\n this.id = arg.id || `tf_${new Date().getTime()}_`;\n } else if (isString(arg)) {\n this.id = arg;\n this.tbl = elm(arg);\n } else if (isNumber(arg)) {\n startRow = arg;\n } else if (isObj(arg)) {\n this.cfg = arg;\n }\n });\n\n if (!this.tbl || this.tbl.nodeName !== 'TABLE' ||\n this.getRowsNb() === 0) {\n throw new Error(`Could not instantiate TableFilter: HTML table\n DOM element not found.`);\n }\n\n // configuration object\n let f = this.cfg;\n\n /**\n * Event emitter instance\n * @type {Emitter}\n */\n this.emitter = new Emitter();\n\n //Start row et cols nb\n this.refRow = isUndef(startRow) ? 2 : (startRow + 1);\n this.nbCells = this.getCellsNb(this.refRow);\n\n /**\n * Base path for static assets\n * @type {String}\n */\n this.basePath = f.base_path || 'tablefilter/';\n\n /*** filters' grid properties ***/\n\n /**\n * Enable/disable filters\n * @type {Boolean}\n */\n this.fltGrid = f.grid === false ? false : true;\n\n /**\n * Enable/disable grid layout (fixed headers)\n * @type {Boolean}\n */\n this.gridLayout = Boolean(f.grid_layout);\n\n /**\n * Filters row index\n * @type {Number}\n */\n this.filtersRowIndex = isNaN(f.filters_row_index) ?\n 0 : f.filters_row_index;\n\n /**\n * Headers row index\n * @type {Number}\n */\n this.headersRow = isNaN(f.headers_row_index) ?\n (this.filtersRowIndex === 0 ? 1 : 0) : f.headers_row_index;\n\n /**\n * Define the type of cell containing a filter (td/th)\n * @type {String}\n */\n this.fltCellTag = isString(f.filters_cell_tag) ?\n f.filters_cell_tag : CELL_TAG;\n\n /**\n * List of filters IDs\n * @type {Array}\n * @private\n */\n this.fltIds = [];\n\n /**\n * List of valid rows indexes (rows visible upon filtering)\n * @type {Array}\n * @private\n */\n this.validRowsIndex = [];\n\n /**\n * Toolbar's container DOM element\n * @type {DOMElement}\n * @private\n */\n this.infDiv = null;\n\n /**\n * Left-side inner container DOM element (rows counter in toolbar)\n * @type {DOMElement}\n * @private\n */\n this.lDiv = null;\n\n /**\n * Right-side inner container DOM element (reset button,\n * page length selector in toolbar)\n * @type {DOMElement}\n * @private\n */\n this.rDiv = null;\n\n /**\n * Middle inner container DOM element (paging elements in toolbar)\n * @type {DOMElement}\n * @private\n */\n this.mDiv = null;\n\n /**\n * Css class for toolbar's container DOM element\n * @type {String}\n */\n this.infDivCssClass = f.inf_div_css_class || 'inf';\n\n /**\n * Css class for left-side inner container DOM element\n * @type {String}\n */\n this.lDivCssClass = f.left_div_css_class || 'ldiv';\n\n /**\n * Css class for right-side inner container DOM element\n * @type {String}\n */\n this.rDivCssClass = f.right_div_css_class || 'rdiv';\n\n /**\n * Css class for middle inner container DOM element\n * @type {String}\n */\n this.mDivCssClass = f.middle_div_css_class || 'mdiv';\n\n /*** filters' grid appearance ***/\n /**\n * Path for stylesheets\n * @type {String}\n */\n this.stylePath = f.style_path || this.basePath + 'style/';\n\n /**\n * Main stylesheet path\n * @type {String}\n */\n this.stylesheet = f.stylesheet || this.stylePath + 'tablefilter.css';\n\n /**\n * Main stylesheet ID\n * @type {String}\n * @private\n */\n this.stylesheetId = this.id + '_style';\n\n /**\n * Css class for the filters row\n * @type {String}\n */\n this.fltsRowCssClass = f.flts_row_css_class || 'fltrow';\n\n /**\n * Enable/disable icons (paging, reset button)\n * @type {Boolean}\n */\n this.enableIcons = f.enable_icons === false ? false : true;\n\n /**\n * Enable/disable alternating rows\n * @type {Boolean}\n */\n this.alternateRows = Boolean(f.alternate_rows);\n\n /**\n * Indicate whether columns widths are set\n * @type {Boolean}\n * @private\n */\n this.hasColWidths = isArray(f.col_widths);\n\n /**\n * Columns widths array\n * @type {Array}\n */\n this.colWidths = this.hasColWidths ? f.col_widths : [];\n\n /**\n * Css class for a filter element\n * @type {String}\n */\n this.fltCssClass = f.flt_css_class || 'flt';\n\n /**\n * Css class for multiple select filters\n * @type {String}\n */\n this.fltMultiCssClass = f.flt_multi_css_class || 'flt_multi';\n\n /**\n * Css class for small filter (when submit button is active)\n * @type {String}\n */\n this.fltSmallCssClass = f.flt_small_css_class || 'flt_s';\n\n /**\n * Css class for single filter type\n * @type {String}\n */\n this.singleFltCssClass = f.single_flt_css_class || 'single_flt';\n\n /*** filters' grid behaviours ***/\n\n /**\n * Enable/disable enter key for input type filters\n * @type {Boolean}\n */\n this.enterKey = f.enter_key === false ? false : true;\n\n /**\n * Callback fired before filtering process starts\n * @type {Function}\n */\n this.onBeforeFilter = isFn(f.on_before_filter) ?\n f.on_before_filter : EMPTY_FN;\n\n /**\n * Callback fired after filtering process is completed\n * @type {Function}\n */\n this.onAfterFilter = isFn(f.on_after_filter) ?\n f.on_after_filter : EMPTY_FN;\n\n /**\n * Enable/disable case sensitivity filtering\n * @type {Boolean}\n */\n this.caseSensitive = Boolean(f.case_sensitive);\n\n /**\n * Indicate whether exact match filtering is enabled on a per column\n * basis\n * @type {Boolean}\n * @private\n */\n this.hasExactMatchByCol = isArray(f.columns_exact_match);\n\n /**\n * Exact match filtering per column array\n * @type {Array}\n */\n this.exactMatchByCol = this.hasExactMatchByCol ?\n f.columns_exact_match : [];\n\n /**\n * Globally enable/disable exact match filtering\n * @type {Boolean}\n */\n this.exactMatch = Boolean(f.exact_match);\n\n /**\n * Ignore diacritics globally or on a column basis\n * @type {Boolean|Array}\n */\n this.ignoreDiacritics = f.ignore_diacritics;\n\n /**\n * Enable/disable linked filters filtering mode\n * @type {Boolean}\n */\n this.linkedFilters = Boolean(f.linked_filters);\n\n /**\n * Enable/disable readonly state for excluded options when\n * linked filters filtering mode is on\n * @type {Boolean}\n */\n this.disableExcludedOptions = Boolean(f.disable_excluded_options);\n\n /**\n * Active filter ID\n * @type {String}\n * @private\n */\n this.activeFilterId = null;\n\n /**\n * Enable/disable always visible rows, excluded from filtering\n * @type {Boolean}\n */\n this.hasVisibleRows = Boolean(f.rows_always_visible);\n\n /**\n * List of row indexes to be excluded from filtering\n * @type {Array}\n */\n this.visibleRows = this.hasVisibleRows ? f.rows_always_visible : [];\n\n /**\n * Enable/disable external filters generation\n * @type {Boolean}\n */\n this.isExternalFlt = Boolean(f.external_flt_grid);\n\n /**\n * List of containers IDs where external filters will be generated\n * @type {Array}\n */\n this.externalFltTgtIds = f.external_flt_grid_ids || [];\n\n /**\n * Callback fired after filters are generated\n * @type {Function}\n */\n this.onFiltersLoaded = isFn(f.on_filters_loaded) ?\n f.on_filters_loaded : EMPTY_FN;\n\n /**\n * Enable/disable single filter filtering all columns\n * @type {Boolean}\n */\n this.singleSearchFlt = Boolean(f.single_filter);\n\n /**\n * Callback fired after a row is validated during filtering\n * @type {Function}\n */\n this.onRowValidated = isFn(f.on_row_validated) ?\n f.on_row_validated : EMPTY_FN;\n\n /**\n * List of columns implementing custom filtering\n * @type {Array}\n */\n this.customCellDataCols = f.custom_cell_data_cols ?\n f.custom_cell_data_cols : [];\n\n /**\n * Delegate function for retrieving cell data with custom logic\n * @type {Function}\n */\n this.customCellData = isFn(f.custom_cell_data) ?\n f.custom_cell_data : EMPTY_FN;\n\n /**\n * Global watermark text for input filter type or watermark for each\n * filter if an array is supplied\n * @type {String|Array}\n */\n this.watermark = f.watermark || '';\n\n /**\n * Indicate whether watermark is on a per column basis\n * @type {Boolean}\n * @private\n */\n this.isWatermarkArray = isArray(this.watermark);\n\n /**\n * Toolbar's custom container ID\n * @type {String}\n */\n this.toolBarTgtId = f.toolbar_target_id || null;\n\n /**\n * Indicate whether help UI component is disabled\n * @type {Boolean}\n */\n this.help = isUndef(f.help_instructions) ?\n undefined : Boolean(f.help_instructions);\n\n /**\n * Indicate whether pop-up filters UI is enabled\n * @type {Boolean}\n */\n this.popupFilters = Boolean(f.popup_filters);\n\n /**\n * Indicate whether filtered (active) columns indicator is enabled\n * @type {Boolean}\n */\n this.markActiveColumns = Boolean(f.mark_active_columns);\n\n /**\n * Css class for filtered (active) columns\n * @type {String}\n */\n this.activeColumnsCssClass = f.active_columns_css_class ||\n 'activeHeader';\n\n /**\n * Callback fired before a column is marked as filtered\n * @type {Function}\n */\n this.onBeforeActiveColumn = isFn(f.on_before_active_column) ?\n f.on_before_active_column : EMPTY_FN;\n\n /**\n * Callback fired after a column is marked as filtered\n * @type {Function}\n */\n this.onAfterActiveColumn = isFn(f.on_after_active_column) ?\n f.on_after_active_column : EMPTY_FN;\n\n /*** select filter's customisation and behaviours ***/\n /**\n * Text for clear option in drop-down filter types (1st option)\n * @type {String|Array}\n */\n this.clearFilterText = f.clear_filter_text || 'Clear';\n\n /**\n * Indicate whether empty option is enabled in drop-down filter types\n * @type {Boolean}\n */\n this.enableEmptyOption = Boolean(f.enable_empty_option);\n\n /**\n * Text for empty option in drop-down filter types\n * @type {String}\n */\n this.emptyText = f.empty_text || '(Empty)';\n\n /**\n * Indicate whether non-empty option is enabled in drop-down filter\n * types\n * @type {Boolean}\n */\n this.enableNonEmptyOption = Boolean(f.enable_non_empty_option);\n\n /**\n * Text for non-empty option in drop-down filter types\n * @type {String}\n */\n this.nonEmptyText = f.non_empty_text || '(Non empty)';\n\n /**\n * Indicate whether drop-down filter types filter the table by default\n * on change event\n * @type {Boolean}\n */\n this.onSlcChange = f.on_change === false ? false : true;\n\n /**\n * Indicate whether options in drop-down filter types are sorted in a\n * alpha-numeric manner by default\n * @type {Boolean}\n */\n this.sortSlc = f.sort_select === false ? false : true;\n\n /**\n * Indicate whether options in drop-down filter types are sorted in a\n * ascending numeric manner\n * @type {Boolean}\n * @private\n */\n this.isSortNumAsc = Boolean(f.sort_num_asc);\n\n /**\n * List of columns implementing options sorting in a ascending numeric\n * manner\n * @type {Array}\n */\n this.sortNumAsc = this.isSortNumAsc ? f.sort_num_asc : [];\n\n /**\n * Indicate whether options in drop-down filter types are sorted in a\n * descending numeric manner\n * @type {Boolean}\n * @private\n */\n this.isSortNumDesc = Boolean(f.sort_num_desc);\n\n /**\n * List of columns implementing options sorting in a descending numeric\n * manner\n * @type {Array}\n */\n this.sortNumDesc = this.isSortNumDesc ? f.sort_num_desc : [];\n\n /**\n * Indicate whether drop-down filter types are populated on demand at\n * first usage\n * @type {Boolean}\n */\n this.loadFltOnDemand = Boolean(f.load_filters_on_demand);\n\n /**\n * Indicate whether custom drop-down filter options are implemented\n * @type {Boolean}\n */\n this.hasCustomOptions = isObj(f.custom_options);\n\n /**\n * Custom options definition of a per column basis, ie:\n *\tcustom_options: {\n * cols:[0, 1],\n * texts: [\n * ['a0', 'b0', 'c0'],\n * ['a1', 'b1', 'c1']\n * ],\n * values: [\n * ['a0', 'b0', 'c0'],\n * ['a1', 'b1', 'c1']\n * ],\n * sorts: [false, true]\n * }\n *\n * @type {Object}\n */\n this.customOptions = f.custom_options;\n\n /*** Filter operators ***/\n /**\n * Regular expression operator for input filter. Defaults to 'rgx:'\n * @type {String}\n */\n this.rgxOperator = f.regexp_operator || 'rgx:';\n\n /**\n * Empty cells operator for input filter. Defaults to '[empty]'\n * @type {String}\n */\n this.emOperator = f.empty_operator || '[empty]';\n\n /**\n * Non-empty cells operator for input filter. Defaults to '[nonempty]'\n * @type {String}\n */\n this.nmOperator = f.nonempty_operator || '[nonempty]';\n\n /**\n * Logical OR operator for input filter. Defaults to '||'\n * @type {String}\n */\n this.orOperator = f.or_operator || '||';\n\n /**\n * Logical AND operator for input filter. Defaults to '&&'\n * @type {String}\n */\n this.anOperator = f.and_operator || '&&';\n\n /**\n * Greater than operator for input filter. Defaults to '>'\n * @type {String}\n */\n this.grOperator = f.greater_operator || '>';\n\n /**\n * Lower than operator for input filter. Defaults to '<'\n * @type {String}\n */\n this.lwOperator = f.lower_operator || '<';\n\n /**\n * Lower than or equal operator for input filter. Defaults to '<='\n * @type {String}\n */\n this.leOperator = f.lower_equal_operator || '<=';\n\n /**\n * Greater than or equal operator for input filter. Defaults to '>='\n * @type {String}\n */\n this.geOperator = f.greater_equal_operator || '>=';\n\n /**\n * Inequality operator for input filter. Defaults to '!'\n * @type {String}\n */\n this.dfOperator = f.different_operator || '!';\n\n /**\n * Like operator for input filter. Defaults to '!'\n * @type {String}\n */\n this.lkOperator = f.like_operator || '*';\n\n /**\n * Strict equality operator for input filter. Defaults to '='\n * @type {String}\n */\n this.eqOperator = f.equal_operator || '=';\n\n /**\n * Starts with operator for input filter. Defaults to '='\n * @type {String}\n */\n this.stOperator = f.start_with_operator || '{';\n\n /**\n * Ends with operator for input filter. Defaults to '='\n * @type {String}\n */\n this.enOperator = f.end_with_operator || '}';\n\n // this.curExp = f.cur_exp || '^[¥£€$]';\n\n /**\n * Stored values separator\n * @type {String}\n */\n this.separator = f.separator || ',';\n\n /**\n * Enable rows counter UI component\n * @type {Boolean}\n */\n this.rowsCounter = Boolean(f.rows_counter);\n\n /**\n * Enable status bar UI component\n * @type {Boolean}\n */\n this.statusBar = Boolean(f.status_bar);\n\n /**\n * Enable activity/spinner indicator UI component\n * @type {Boolean}\n */\n this.loader = Boolean(f.loader);\n\n /*** validation - reset buttons/links ***/\n /**\n * Enable filters submission button\n * @type {Boolean}\n */\n this.displayBtn = Boolean(f.btn);\n\n /**\n * Define filters submission button text\n * @type {String}\n */\n this.btnText = f.btn_text || (!this.enableIcons ? 'Go' : '');\n\n /**\n * Css class for filters submission button\n * @type {String}\n */\n this.btnCssClass = f.btn_css_class ||\n (!this.enableIcons ? 'btnflt' : 'btnflt_icon');\n\n /**\n * Enable clear button\n * @type {Boolean}\n */\n this.btnReset = Boolean(f.btn_reset);\n\n /**\n * Callback fired before filters are cleared\n * @type {Function}\n */\n this.onBeforeReset = isFn(f.on_before_reset) ?\n f.on_before_reset : EMPTY_FN;\n\n /**\n * Callback fired after filters are cleared\n * @type {Function}\n */\n this.onAfterReset = isFn(f.on_after_reset) ?\n f.on_after_reset : EMPTY_FN;\n\n /**\n * Enable paging component\n * @type {Boolean}\n */\n this.paging = Boolean(f.paging);\n\n /**\n * Number of hidden rows\n * @type {Number}\n * @private\n */\n this.nbHiddenRows = 0;\n\n /**\n * Enable auto-filter behaviour, table is filtered when a user\n * stops typing\n * @type {Boolean}\n */\n this.autoFilter = Boolean(f.auto_filter);\n\n /**\n * Auto-filter delay in msecs\n * @type {Number}\n */\n this.autoFilterDelay = !isNaN(f.auto_filter_delay) ?\n f.auto_filter_delay : AUTO_FILTER_DELAY;\n\n /**\n * Indicate whether user is typing\n * @type {Boolean}\n * @private\n */\n this.isUserTyping = null;\n\n /**\n * Auto-filter interval ID\n * @type {String}\n * @private\n */\n this.autoFilterTimer = null;\n\n /**\n * Enable keyword highlighting behaviour\n * @type {Boolean}\n */\n this.highlightKeywords = Boolean(f.highlight_keywords);\n\n /**\n * Enable no results message UI component\n * @type {Boolean}\n */\n this.noResults = isObj(f.no_results_message) ||\n Boolean(f.no_results_message);\n\n /**\n * Enable state persistence\n * @type {Boolean}\n */\n this.state = isObj(f.state) || Boolean(f.state);\n\n /*** data types ***/\n\n /**\n * Define default locale, default to 'en' as per Sugar Date module:\n * https://sugarjs.com/docs/#/DateLocales\n * @type {String}\n */\n this.locale = f.locale || 'en';\n\n /**\n * Define thousands separator ',' or '.', defaults to ','\n * @type {String}\n */\n this.thousandsSeparator = f.thousands_separator || ',';\n\n /**\n * Define decimal separator ',' or '.', defaults to '.'\n * @type {String}\n */\n this.decimalSeparator = f.decimal_separator || '.';\n\n /**\n * Determine whether table has columns data types\n * @type {Boolean}\n * @private\n */\n this.hasColTypes = isArray(f.col_types);\n\n /**\n * Define data types on a column basis, possible values 'string',\n * 'number', 'formatted-number', 'date', 'ipaddress' ie:\n * col_types : [\n * 'string', 'date', 'number',\n * { type: 'formatted-number', decimal: ',', thousands: '.' },\n * { type: 'date', locale: 'en-gb' },\n * { type: 'date', format: ['{dd}-{months}-{yyyy|yy}'] }\n * ]\n *\n * Refer to https://sugarjs.com/docs/#/DateParsing for exhaustive\n * information on date parsing formats supported by Sugar Date\n * @type {Array}\n */\n this.colTypes = this.hasColTypes ? f.col_types : [];\n\n /*** ids prefixes ***/\n /**\n * Main prefix\n * @private\n */\n this.prfxTf = 'TF';\n\n /**\n * Filter's ID prefix (inputs - selects)\n * @private\n */\n this.prfxFlt = 'flt';\n\n /**\n * Button's ID prefix\n * @private\n */\n this.prfxValButton = 'btn';\n\n /**\n * Toolbar container ID prefix\n * @private\n */\n this.prfxInfDiv = 'inf_';\n\n /**\n * Toolbar left element ID prefix\n * @private\n */\n this.prfxLDiv = 'ldiv_';\n\n /**\n * Toolbar right element ID prefix\n * @private\n */\n this.prfxRDiv = 'rdiv_';\n\n /**\n * Toolbar middle element ID prefix\n * @private\n */\n this.prfxMDiv = 'mdiv_';\n\n /**\n * Responsive Css class\n * @private\n */\n this.prfxResponsive = 'resp';\n\n /*** extensions ***/\n /**\n * List of loaded extensions\n * @type {Array}\n * @private\n */\n this.extensions = f.extensions;\n\n /**\n * Determine whether extensions are loaded\n * @type {Boolean}\n * @private\n */\n this.hasExtensions = isArray(this.extensions);\n\n /*** themes ***/\n /**\n * Enable default theme\n * @type {Boolean}\n */\n this.enableDefaultTheme = Boolean(f.enable_default_theme);\n\n /**\n * Determine whether themes are enables\n * @type {Boolean}\n * @private\n */\n this.hasThemes = (this.enableDefaultTheme || isArray(f.themes));\n\n /**\n * List of themes, ie:\n * themes: [{ name: 'skyblue' }]\n * @type {Array}\n */\n this.themes = f.themes || [];\n\n /**\n * Define path to themes assets, defaults to\n * 'tablefilter/style/themes/'. Usage:\n * themes: [{ name: 'skyblue' }]\n * @type {Array}\n */\n this.themesPath = f.themes_path || this.stylePath + 'themes/';\n\n /**\n * Enable responsive layout\n * @type {Boolean}\n */\n this.responsive = Boolean(f.responsive);\n\n /**\n * Features registry\n * @private\n */\n this.Mod = {};\n\n /**\n * Extensions registry\n * @private\n */\n this.ExtRegistry = {};\n }\n\n /**\n * Initialise features and layout\n */\n init() {\n if (this.initialized) {\n return;\n }\n\n let Mod = this.Mod;\n let n = this.singleSearchFlt ? 1 : this.nbCells;\n let inpclass;\n\n //loads stylesheet if not imported\n this.import(this.stylesheetId, this.stylesheet, null, 'link');\n\n //loads theme\n if (this.hasThemes) {\n this.loadThemes();\n }\n\n // Instanciate sugar date wrapper\n Mod.dateType = Mod.dateType || new DateType(this);\n Mod.dateType.init();\n\n // Instantiate help feature and initialise only if set true\n Mod.help = Mod.help || new Help(this);\n if (this.help) {\n Mod.help.init();\n }\n\n if (this.state) {\n Mod.state = Mod.state || new State(this);\n Mod.state.init();\n }\n\n if (this.gridLayout) {\n Mod.gridLayout = Mod.gridLayout || new GridLayout(this);\n Mod.gridLayout.init();\n }\n\n if (this.loader) {\n Mod.loader = Mod.loader || new Loader(this);\n Mod.loader.init();\n }\n\n if (this.highlightKeywords) {\n Mod.highlightKeyword = new HighlightKeyword(this);\n Mod.highlightKeyword.init();\n }\n\n if (this.popupFilters) {\n Mod.popupFilter = Mod.popupFilter || new PopupFilter(this);\n Mod.popupFilter.init();\n }\n\n //filters grid is not generated\n if (!this.fltGrid) {\n this._initNoFilters();\n } else {\n let fltrow = this._insertFiltersRow();\n\n this.nbFilterableRows = this.getRowsNb();\n\n // Generate filters\n for (let i = 0; i < n; i++) {\n this.emitter.emit('before-filter-init', this, i);\n\n let fltcell = createElm(this.fltCellTag),\n col = this.getFilterType(i);\n\n if (this.singleSearchFlt) {\n fltcell.colSpan = this.nbCells;\n }\n if (!this.gridLayout) {\n fltrow.appendChild(fltcell);\n }\n inpclass = (i === n - 1 && this.displayBtn) ?\n this.fltSmallCssClass : this.fltCssClass;\n\n //only 1 input for single search\n if (this.singleSearchFlt) {\n col = INPUT;\n inpclass = this.singleFltCssClass;\n }\n\n //drop-down filters\n if (col === SELECT || col === MULTIPLE) {\n if (!Mod.dropdown) {\n Mod.dropdown = new Dropdown(this);\n }\n Mod.dropdown.init(i, this.isExternalFlt, fltcell);\n }\n // checklist\n else if (col === CHECKLIST) {\n if (!Mod.checkList) {\n Mod.checkList = new CheckList(this);\n }\n Mod.checkList.init(i, this.isExternalFlt, fltcell);\n } else {\n this._buildInputFilter(i, inpclass, fltcell);\n }\n\n // this adds submit button\n if (i === n - 1 && this.displayBtn) {\n this._buildSubmitButton(i, fltcell);\n }\n\n this.emitter.emit('after-filter-init', this, i);\n }\n\n this.emitter.on(['filter-focus'],\n (tf, filter) => this.setActiveFilterId(filter.id));\n\n }//if this.fltGrid\n\n /* Features */\n if (this.hasVisibleRows) {\n this.emitter.on(['after-filtering'],\n () => this.enforceVisibility());\n this.enforceVisibility();\n }\n if (this.rowsCounter) {\n Mod.rowsCounter = new RowsCounter(this);\n Mod.rowsCounter.init();\n }\n if (this.statusBar) {\n Mod.statusBar = new StatusBar(this);\n Mod.statusBar.init();\n }\n if (this.paging) {\n if (!Mod.paging) {\n Mod.paging = new Paging(this);\n Mod.paging.init();\n } else {\n Mod.paging.reset();\n }\n }\n if (this.btnReset) {\n Mod.clearButton = new ClearButton(this);\n Mod.clearButton.init();\n }\n\n if (this.hasColWidths && !this.gridLayout) {\n this.setColWidths();\n }\n if (this.alternateRows) {\n Mod.alternateRows = new AlternateRows(this);\n Mod.alternateRows.init();\n }\n if (this.noResults) {\n Mod.noResults = Mod.noResults || new NoResults(this);\n Mod.noResults.init();\n }\n\n //TF css class is added to table\n if (!this.gridLayout) {\n addClass(this.tbl, this.prfxTf);\n if (this.responsive) {\n addClass(this.tbl, this.prfxResponsive);\n }\n }\n\n /* Loads extensions */\n if (this.hasExtensions) {\n this.initExtensions();\n }\n\n // Subscribe to events\n if (this.markActiveColumns) {\n this.emitter.on(['before-filtering'],\n () => this.clearActiveColumns());\n this.emitter.on(['cell-processed'],\n (tf, colIndex) => this.markActiveColumn(colIndex));\n }\n if (this.linkedFilters) {\n this.emitter.on(['after-filtering'], () => this.linkFilters());\n }\n\n /** @inherited */\n this.initialized = true;\n\n this.onFiltersLoaded(this);\n\n this.emitter.emit('initialized', this);\n }\n\n /**\n * Detect key\n * @param {Event} evt\n */\n detectKey(evt) {\n if (!this.enterKey) {\n return;\n }\n if (evt) {\n let key = keyCode(evt);\n if (key === ENTER_KEY) {\n this.filter();\n cancelEvt(evt);\n stopEvt(evt);\n } else {\n this.isUserTyping = true;\n root.clearInterval(this.autoFilterTimer);\n this.autoFilterTimer = null;\n }\n }\n }\n\n /**\n * Filter's keyup event: if auto-filter on, detect user is typing and filter\n * columns\n * @param {Event} evt\n */\n onKeyUp(evt) {\n if (!this.autoFilter) {\n return;\n }\n let key = keyCode(evt);\n this.isUserTyping = false;\n\n function filter() {\n root.clearInterval(this.autoFilterTimer);\n this.autoFilterTimer = null;\n if (!this.isUserTyping) {\n this.filter();\n this.isUserTyping = null;\n }\n }\n\n if (key !== ENTER_KEY && key !== TAB_KEY && key !== ESC_KEY &&\n key !== UP_ARROW_KEY && key !== DOWN_ARROW_KEY) {\n if (this.autoFilterTimer === null) {\n this.autoFilterTimer = root.setInterval(filter.bind(this),\n this.autoFilterDelay);\n }\n } else {\n root.clearInterval(this.autoFilterTimer);\n this.autoFilterTimer = null;\n }\n }\n\n /**\n * Filter's keydown event: if auto-filter on, detect user is typing\n */\n onKeyDown() {\n if (this.autoFilter) {\n this.isUserTyping = true;\n }\n }\n\n /**\n * Filter's focus event\n * @param {Event} evt\n */\n onInpFocus(evt) {\n let elm = targetEvt(evt);\n this.emitter.emit('filter-focus', this, elm);\n }\n\n /**\n * Filter's blur event: if auto-filter on, clear interval on filter blur\n */\n onInpBlur() {\n if (this.autoFilter) {\n this.isUserTyping = false;\n root.clearInterval(this.autoFilterTimer);\n }\n this.emitter.emit('filter-blur', this);\n }\n\n /**\n * Insert filters row at initialization\n */\n _insertFiltersRow() {\n // TODO: prevent filters row generation for popup filters too,\n // to reduce and simplify headers row index adjusting across lib modules\n // (GridLayout, PopupFilter etc)\n if (this.gridLayout) {\n return;\n }\n let fltrow;\n\n let thead = tag(this.tbl, 'thead');\n if (thead.length > 0) {\n fltrow = thead[0].insertRow(this.filtersRowIndex);\n } else {\n fltrow = this.tbl.insertRow(this.filtersRowIndex);\n }\n\n fltrow.className = this.fltsRowCssClass;\n\n if (this.isExternalFlt) {\n fltrow.style.display = NONE;\n }\n\n this.emitter.emit('filters-row-inserted', this, fltrow);\n return fltrow;\n }\n\n /**\n * Initialize filtersless table\n */\n _initNoFilters() {\n if (this.fltGrid) {\n return;\n }\n this.refRow = this.refRow > 0 ? this.refRow - 1 : 0;\n this.nbFilterableRows = this.getRowsNb();\n }\n\n /**\n * Build input filter type\n * @param {Number} colIndex Column index\n * @param {String} cssClass Css class applied to filter\n * @param {DOMElement} container Container DOM element\n */\n _buildInputFilter(colIndex, cssClass, container) {\n let col = this.getFilterType(colIndex);\n let externalFltTgtId = this.isExternalFlt ?\n this.externalFltTgtIds[colIndex] : null;\n let inpType = col === INPUT ? 'text' : 'hidden';\n let inp = createElm(INPUT,\n ['id', this.buildFilterId(colIndex)],\n ['type', inpType], ['ct', colIndex]);\n\n if (inpType !== 'hidden' && this.watermark) {\n inp.setAttribute('placeholder',\n this.isWatermarkArray ? (this.watermark[colIndex] || '') :\n this.watermark\n );\n }\n inp.className = cssClass || this.fltCssClass;\n addEvt(inp, 'focus', (evt) => this.onInpFocus(evt));\n\n //filter is appended in custom element\n if (externalFltTgtId) {\n elm(externalFltTgtId).appendChild(inp);\n } else {\n container.appendChild(inp);\n }\n\n this.fltIds.push(inp.id);\n\n addEvt(inp, 'keypress', (evt) => this.detectKey(evt));\n addEvt(inp, 'keydown', () => this.onKeyDown());\n addEvt(inp, 'keyup', (evt) => this.onKeyUp(evt));\n addEvt(inp, 'blur', () => this.onInpBlur());\n }\n\n /**\n * Build submit button\n * @param {Number} colIndex Column index\n * @param {DOMElement} container Container DOM element\n */\n _buildSubmitButton(colIndex, container) {\n let externalFltTgtId = this.isExternalFlt ?\n this.externalFltTgtIds[colIndex] : null;\n let btn = createElm(INPUT,\n ['type', 'button'],\n ['value', this.btnText]\n );\n btn.className = this.btnCssClass;\n\n //filter is appended in custom element\n if (externalFltTgtId) {\n elm(externalFltTgtId).appendChild(btn);\n } else {\n container.appendChild(btn);\n }\n\n addEvt(btn, 'click', () => this.filter());\n }\n\n /**\n * Return a feature instance for a given name\n * @param {String} name Name of the feature\n * @return {Object}\n */\n feature(name) {\n return this.Mod[name];\n }\n\n /**\n * Initialise all the extensions defined in the configuration object\n */\n initExtensions() {\n let exts = this.extensions;\n // Set config's publicPath dynamically for Webpack...\n __webpack_public_path__ = this.basePath;\n\n this.emitter.emit('before-loading-extensions', this);\n for (let i = 0, len = exts.length; i < len; i++) {\n let ext = exts[i];\n if (!this.ExtRegistry[ext.name]) {\n this.loadExtension(ext);\n }\n }\n this.emitter.emit('after-loading-extensions', this);\n }\n\n /**\n * Load an extension module\n * @param {Object} ext Extension config object\n */\n loadExtension(ext) {\n if (!ext || !ext.name) {\n return;\n }\n\n let name = ext.name;\n let path = ext.path;\n let modulePath;\n\n if (name && path) {\n modulePath = ext.path + name;\n } else {\n name = name.replace('.js', '');\n modulePath = 'extensions/{}/{}'.replace(/{}/g, name);\n }\n\n // Require pattern for Webpack\n require(['./' + modulePath], (mod) => {\n /* eslint-disable */\n let inst = new mod.default(this, ext);\n /* eslint-enable */\n inst.init();\n this.ExtRegistry[name] = inst;\n });\n }\n\n /**\n * Get an extension instance\n * @param {String} name Name of the extension\n * @return {Object} Extension instance\n */\n extension(name) {\n return this.ExtRegistry[name];\n }\n\n /**\n * Check passed extension name exists\n * @param {String} name Name of the extension\n * @return {Boolean}\n */\n hasExtension(name) {\n return !isEmpty(this.ExtRegistry[name]);\n }\n\n /**\n * Destroy all the extensions defined in the configuration object\n */\n destroyExtensions() {\n let exts = this.extensions;\n\n for (let i = 0, len = exts.length; i < len; i++) {\n let ext = exts[i];\n let extInstance = this.ExtRegistry[ext.name];\n if (extInstance) {\n extInstance.destroy();\n this.ExtRegistry[ext.name] = undefined;\n }\n }\n }\n\n /**\n * Load themes defined in the configuration object\n */\n loadThemes() {\n let themes = this.themes;\n this.emitter.emit('before-loading-themes', this);\n\n //Default theme config\n if (this.enableDefaultTheme) {\n let defaultTheme = { name: 'default' };\n this.themes.push(defaultTheme);\n }\n if (isArray(themes)) {\n for (let i = 0, len = themes.length; i < len; i++) {\n let theme = themes[i];\n let name = theme.name;\n let path = theme.path;\n let styleId = this.prfxTf + name;\n if (name && !path) {\n path = this.themesPath + name + '/' + name + '.css';\n }\n else if (!name && theme.path) {\n name = 'theme{0}'.replace('{0}', i);\n }\n\n if (!this.isImported(path, 'link')) {\n this.import(styleId, path, null, 'link');\n }\n }\n }\n\n // Enable loader indicator\n this.loader = true;\n\n this.emitter.emit('after-loading-themes', this);\n }\n\n /**\n * Return stylesheet DOM element for a given theme name\n * @return {DOMElement} stylesheet element\n */\n getStylesheet(name = 'default') {\n return elm(this.prfxTf + name);\n }\n\n /**\n * Destroy filter grid\n */\n destroy() {\n if (!this.initialized) {\n return;\n }\n\n let emitter = this.emitter;\n\n if (this.isExternalFlt && !this.popupFilters) {\n this.removeExternalFlts();\n }\n if (this.infDiv) {\n this.removeToolbar();\n }\n if (this.markActiveColumns) {\n this.clearActiveColumns();\n emitter.off(['before-filtering'], () => this.clearActiveColumns());\n emitter.off(['cell-processed'],\n (tf, colIndex) => this.markActiveColumn(colIndex));\n }\n if (this.hasExtensions) {\n this.destroyExtensions();\n }\n\n this.validateAllRows();\n\n if (this.fltGrid && !this.gridLayout) {\n this.tbl.deleteRow(this.filtersRowIndex);\n }\n\n // broadcast destroy event\n emitter.emit('destroy', this);\n\n // unsubscribe to events\n if (this.hasVisibleRows) {\n emitter.off(['after-filtering'], () => this.enforceVisibility());\n }\n if (this.linkedFilters) {\n emitter.off(['after-filtering'], () => this.linkFilters());\n }\n this.emitter.off(['filter-focus'],\n (tf, filter) => this.setActiveFilterId(filter.id));\n\n removeClass(this.tbl, this.prfxTf);\n removeClass(this.tbl, this.prfxResponsive);\n\n this.nbHiddenRows = 0;\n this.validRowsIndex = [];\n this.fltIds = [];\n this.initialized = false;\n }\n\n /**\n * Generate container element for paging, reset button, rows counter etc.\n */\n setToolbar() {\n if (this.infDiv) {\n return;\n }\n\n /*** container div ***/\n let infDiv = createElm('div');\n infDiv.className = this.infDivCssClass;\n\n //custom container\n if (this.toolBarTgtId) {\n elm(this.toolBarTgtId).appendChild(infDiv);\n }\n //grid-layout\n else if (this.gridLayout) {\n let gridLayout = this.Mod.gridLayout;\n gridLayout.tblMainCont.appendChild(infDiv);\n infDiv.className = gridLayout.infDivCssClass;\n }\n //default location: just above the table\n else {\n let cont = createElm('caption');\n cont.appendChild(infDiv);\n this.tbl.insertBefore(cont, this.tbl.firstChild);\n }\n this.infDiv = infDiv;\n\n /*** left div containing rows # displayer ***/\n let lDiv = createElm('div');\n lDiv.className = this.lDivCssClass;\n infDiv.appendChild(lDiv);\n this.lDiv = lDiv;\n\n /*** right div containing reset button\n + nb results per page select ***/\n let rDiv = createElm('div');\n rDiv.className = this.rDivCssClass;\n infDiv.appendChild(rDiv);\n this.rDiv = rDiv;\n\n /*** mid div containing paging elements ***/\n let mDiv = createElm('div');\n mDiv.className = this.mDivCssClass;\n infDiv.appendChild(mDiv);\n this.mDiv = mDiv;\n\n // emit help initialisation only if undefined\n if (isUndef(this.help)) {\n // explicitily set enabled field to true to initialise help by\n // default, only if setting is undefined\n this.Mod.help.enabled = true;\n this.emitter.emit('init-help', this);\n }\n }\n\n /**\n * Remove toolbar container element\n */\n removeToolbar() {\n if (!this.infDiv) {\n return;\n }\n removeElm(this.infDiv);\n this.infDiv = null;\n\n let tbl = this.tbl;\n let captions = tag(tbl, 'caption');\n if (captions.length > 0) {\n [].forEach.call(captions, (elm) => tbl.removeChild(elm));\n }\n }\n\n /**\n * Remove all the external column filters\n */\n removeExternalFlts() {\n if (!this.isExternalFlt) {\n return;\n }\n let ids = this.externalFltTgtIds,\n len = ids.length;\n for (let ct = 0; ct < len; ct++) {\n let externalFltTgtId = ids[ct],\n externalFlt = elm(externalFltTgtId);\n if (externalFlt) {\n externalFlt.innerHTML = '';\n }\n }\n }\n\n /**\n * Check if given column implements a filter with custom options\n * @param {Number} colIndex Column's index\n * @return {Boolean}\n */\n isCustomOptions(colIndex) {\n return this.hasCustomOptions &&\n this.customOptions.cols.indexOf(colIndex) !== -1;\n }\n\n /**\n * Returns an array [[value0, value1 ...],[text0, text1 ...]] with the\n * custom options values and texts\n * @param {Number} colIndex Column's index\n * @return {Array}\n */\n getCustomOptions(colIndex) {\n if (isEmpty(colIndex) || !this.isCustomOptions(colIndex)) {\n return;\n }\n\n let customOptions = this.customOptions;\n let cols = customOptions.cols;\n let optTxt = [], optArray = [];\n let index = cols.indexOf(colIndex);\n let slcValues = customOptions.values[index];\n let slcTexts = customOptions.texts[index];\n let slcSort = customOptions.sorts[index];\n\n for (let r = 0, len = slcValues.length; r < len; r++) {\n optArray.push(slcValues[r]);\n if (slcTexts[r]) {\n optTxt.push(slcTexts[r]);\n } else {\n optTxt.push(slcValues[r]);\n }\n }\n if (slcSort) {\n optArray.sort();\n optTxt.sort();\n }\n return [optArray, optTxt];\n }\n\n /**\n * Filter the table by retrieving the data from each cell in every single\n * row and comparing it to the search term for current column. A row is\n * hidden when all the search terms are not found in inspected row.\n */\n filter() {\n if (!this.fltGrid || !this.initialized) {\n return;\n }\n //fire onbefore callback\n this.onBeforeFilter(this);\n this.emitter.emit('before-filtering', this);\n\n let row = this.tbl.rows,\n nbRows = this.getRowsNb(true),\n hiddenRows = 0;\n\n this.validRowsIndex = [];\n // search args re-init\n let searchArgs = this.getFiltersValue();\n\n for (let k = this.refRow; k < nbRows; k++) {\n // already filtered rows display re-init\n row[k].style.display = '';\n\n let cells = row[k].cells;\n let nchilds = cells.length;\n\n // checks if row has exact cell #\n if (nchilds !== this.nbCells) {\n continue;\n }\n\n let occurence = [],\n isRowValid = true,\n //only for single filter search\n singleFltRowValid = false;\n\n // this loop retrieves cell data\n for (let j = 0; j < nchilds; j++) {\n //searched keyword\n let sA = searchArgs[this.singleSearchFlt ? 0 : j];\n\n if (sA === '') {\n continue;\n }\n\n let cellData = matchCase(this.getCellData(cells[j]),\n this.caseSensitive);\n\n //multiple search parameter operator ||\n let sAOrSplit = sA.toString().split(this.orOperator),\n //multiple search || parameter boolean\n hasMultiOrSA = sAOrSplit.length > 1,\n //multiple search parameter operator &&\n sAAndSplit = sA.toString().split(this.anOperator),\n //multiple search && parameter boolean\n hasMultiAndSA = sAAndSplit.length > 1;\n\n //detect operators or array query\n if (isArray(sA) || hasMultiOrSA || hasMultiAndSA) {\n let cS,\n s,\n occur = false;\n if (isArray(sA)) {\n s = sA;\n } else {\n s = hasMultiOrSA ? sAOrSplit : sAAndSplit;\n }\n // isolate search term and check occurence in cell data\n for (let w = 0, len = s.length; w < len; w++) {\n cS = trim(s[w]);\n occur = this._testTerm(cS, cellData, j);\n\n if (occur) {\n this.emitter.emit('highlight-keyword', this,\n cells[j], cS);\n }\n if ((hasMultiOrSA && occur) ||\n (hasMultiAndSA && !occur)) {\n break;\n }\n if (isArray(sA) && occur) {\n break;\n }\n }\n occurence[j] = occur;\n\n }\n //single search parameter\n else {\n occurence[j] = this._testTerm(trim(sA), cellData, j);\n if (occurence[j]) {\n this.emitter.emit('highlight-keyword', this, cells[j],\n sA);\n }\n }//else single param\n\n if (!occurence[j]) {\n isRowValid = false;\n }\n if (this.singleSearchFlt && occurence[j]) {\n singleFltRowValid = true;\n }\n\n this.emitter.emit('cell-processed', this, j, cells[j]);\n }//for j\n\n if (this.singleSearchFlt && singleFltRowValid) {\n isRowValid = true;\n }\n\n this.validateRow(k, isRowValid);\n if (!isRowValid) {\n hiddenRows++;\n }\n\n this.emitter.emit('row-processed', this, k,\n this.validRowsIndex.length, isRowValid);\n }// for k\n\n this.nbHiddenRows = hiddenRows;\n\n //fire onafterfilter callback\n this.onAfterFilter(this);\n\n this.emitter.emit('after-filtering', this, searchArgs);\n }\n\n /**\n * Test for a match of search term in cell data\n * @param {String} term Search term\n * @param {String} cellData Cell data\n * @param {Number} colIdx Column index\n * @returns {Boolean}\n */\n _testTerm(term, cellData, colIdx) {\n let numData;\n let decimal = this.decimalSeparator;\n let reLe = new RegExp(this.leOperator),\n reGe = new RegExp(this.geOperator),\n reL = new RegExp(this.lwOperator),\n reG = new RegExp(this.grOperator),\n reD = new RegExp(this.dfOperator),\n reLk = new RegExp(rgxEsc(this.lkOperator)),\n reEq = new RegExp(this.eqOperator),\n reSt = new RegExp(this.stOperator),\n reEn = new RegExp(this.enOperator),\n // re_an = new RegExp(this.anOperator),\n // re_cr = new RegExp(this.curExp),\n reEm = this.emOperator,\n reNm = this.nmOperator,\n reRe = new RegExp(rgxEsc(this.rgxOperator));\n\n term = matchCase(term, this.caseSensitive);\n\n let occurence = false;\n\n //Search arg operator tests\n let hasLO = reL.test(term),\n hasLE = reLe.test(term),\n hasGR = reG.test(term),\n hasGE = reGe.test(term),\n hasDF = reD.test(term),\n hasEQ = reEq.test(term),\n hasLK = reLk.test(term),\n // hatermN = re_an.test(term),\n hasST = reSt.test(term),\n hasEN = reEn.test(term),\n hasEM = (reEm === term),\n hasNM = (reNm === term),\n hasRE = reRe.test(term);\n\n // Check for dates or resolve date type\n if (this.hasType(colIdx, [DATE])) {\n let dte1, dte2;\n\n let dateType = this.Mod.dateType;\n let isValidDate = dateType.isValid.bind(dateType);\n let parseDate = dateType.parse.bind(dateType);\n let locale = dateType.getOptions(colIdx).locale || this.locale;\n\n // Search arg dates tests\n let isLDate = hasLO &&\n isValidDate(term.replace(reL, ''), locale);\n let isLEDate = hasLE &&\n isValidDate(term.replace(reLe, ''), locale);\n let isGDate = hasGR &&\n isValidDate(term.replace(reG, ''), locale);\n let isGEDate = hasGE &&\n isValidDate(term.replace(reGe, ''), locale);\n let isDFDate = hasDF &&\n isValidDate(term.replace(reD, ''), locale);\n let isEQDate = hasEQ &&\n isValidDate(term.replace(reEq, ''), locale);\n\n dte1 = parseDate(cellData, locale);\n\n // lower date\n if (isLDate) {\n dte2 = parseDate(term.replace(reL, ''), locale);\n occurence = dte1 < dte2;\n }\n // lower equal date\n else if (isLEDate) {\n dte2 = parseDate(term.replace(reLe, ''), locale);\n occurence = dte1 <= dte2;\n }\n // greater equal date\n else if (isGEDate) {\n dte2 = parseDate(term.replace(reGe, ''), locale);\n occurence = dte1 >= dte2;\n }\n // greater date\n else if (isGDate) {\n dte2 = parseDate(term.replace(reG, ''), locale);\n occurence = dte1 > dte2;\n }\n // different date\n else if (isDFDate) {\n dte2 = parseDate(term.replace(reD, ''), locale);\n occurence = dte1.toString() !== dte2.toString();\n }\n // equal date\n else if (isEQDate) {\n dte2 = parseDate(term.replace(reEq, ''), locale);\n occurence = dte1.toString() === dte2.toString();\n }\n // searched keyword with * operator doesn't have to be a date\n else if (reLk.test(term)) {// like date\n occurence = contains(term.replace(reLk, ''), cellData,\n false, this.caseSensitive);\n }\n else if (isValidDate(term)) {\n dte2 = parseDate(term, locale);\n occurence = dte1.toString() === dte2.toString();\n }\n //empty\n else if (hasEM) {\n occurence = isEmptyString(cellData);\n }\n //non-empty\n else if (hasNM) {\n occurence = !isEmptyString(cellData);\n } else {\n occurence = contains(term, cellData,\n this.isExactMatch(colIdx), this.caseSensitive);\n }\n }\n\n else {\n if (this.hasType(colIdx, [FORMATTED_NUMBER])) {\n let colType = this.colTypes[colIdx];\n if (colType.hasOwnProperty('decimal')) {\n decimal = colType.decimal;\n }\n }\n // Convert to number anyways to auto-resolve type in case not\n // defined by configuration\n numData = Number(cellData) || parseNb(cellData, decimal);\n\n // first checks if there is any operator (<,>,<=,>=,!,*,=,{,},\n // rgx:)\n // lower equal\n if (hasLE) {\n occurence = numData <= parseNb(\n term.replace(reLe, ''),\n decimal\n );\n }\n //greater equal\n else if (hasGE) {\n occurence = numData >= parseNb(\n term.replace(reGe, ''),\n decimal\n );\n }\n //lower\n else if (hasLO) {\n occurence = numData < parseNb(\n term.replace(reL, ''),\n decimal\n );\n }\n //greater\n else if (hasGR) {\n occurence = numData > parseNb(\n term.replace(reG, ''),\n decimal\n );\n }\n //different\n else if (hasDF) {\n occurence = contains(term.replace(reD, ''), cellData,\n false, this.caseSensitive) ? false : true;\n }\n //like\n else if (hasLK) {\n occurence = contains(term.replace(reLk, ''), cellData,\n false, this.caseSensitive);\n }\n //equal\n else if (hasEQ) {\n occurence = contains(term.replace(reEq, ''), cellData,\n true, this.caseSensitive);\n }\n //starts with\n else if (hasST) {\n occurence = cellData.indexOf(term.replace(reSt, '')) === 0 ?\n true : false;\n }\n //ends with\n else if (hasEN) {\n let searchArg = term.replace(reEn, '');\n occurence =\n cellData.lastIndexOf(searchArg, cellData.length - 1) ===\n (cellData.length - 1) - (searchArg.length - 1) &&\n cellData.lastIndexOf(searchArg, cellData.length - 1)\n > -1 ? true : false;\n }\n //empty\n else if (hasEM) {\n occurence = isEmptyString(cellData);\n }\n //non-empty\n else if (hasNM) {\n occurence = !isEmptyString(cellData);\n }\n //regexp\n else if (hasRE) {\n //in case regexp throws\n try {\n //operator is removed\n let srchArg = term.replace(reRe, '');\n let rgx = new RegExp(srchArg);\n occurence = rgx.test(cellData);\n } catch (ex) {\n occurence = false;\n }\n } else {\n // If numeric type data, perform a strict equality test and\n // fallback to unformatted number string comparison\n if (numData &&\n this.hasType(colIdx, [NUMBER, FORMATTED_NUMBER]) &&\n !this.singleSearchFlt) {\n // parseNb can return 0 for strings which are not\n // formatted numbers, in that case return the original\n // string. TODO: handle this in parseNb\n term = parseNb(term, decimal) || term;\n occurence = numData === term ||\n contains(term.toString(), numData.toString(),\n this.isExactMatch(colIdx), this.caseSensitive);\n } else {\n // Finally test search term is contained in cell data\n occurence = contains(\n term,\n cellData,\n this.isExactMatch(colIdx),\n this.caseSensitive,\n this.ignoresDiacritics(colIdx)\n );\n }\n }\n\n }//else\n\n return occurence;\n }\n\n /**\n * Return the data of a specified column\n * @param {Number} colIndex Column index\n * @param {Boolean} includeHeaders Optional: include headers row\n * @param {Boolean} num Optional: return unformatted number\n * @param {Array} exclude Optional: list of row indexes to be excluded\n * @return {Array} Flat list of data for a column\n */\n getColValues(colIndex, includeHeaders = false, num = false, exclude = []) {\n if (!this.fltGrid) {\n return;\n }\n let row = this.tbl.rows;\n let nbRows = this.getRowsNb(true);\n let colValues = [];\n\n if (includeHeaders) {\n colValues.push(this.getHeadersText()[colIndex]);\n }\n\n for (let i = this.refRow; i < nbRows; i++) {\n let isExludedRow = false;\n // checks if current row index appears in exclude array\n if (exclude.length > 0) {\n isExludedRow = exclude.indexOf(i) !== -1;\n }\n let cell = row[i].cells,\n nchilds = cell.length;\n\n // checks if row has exact cell # and is not excluded\n if (nchilds === this.nbCells && !isExludedRow) {\n // this loop retrieves cell data\n for (let j = 0; j < nchilds; j++) {\n if (j !== colIndex || row[i].style.display !== '') {\n continue;\n }\n let cellData = this.getCellData(cell[j]);\n let decimal = this.decimalSeparator;\n if (this.hasType(colIndex, [FORMATTED_NUMBER])) {\n let colType = this.colTypes[colIndex];\n if (colType.hasOwnProperty('decimal')) {\n decimal = colType.decimal;\n }\n }\n let data = num ?\n Number(cellData) || parseNb(cellData, decimal) :\n cellData;\n colValues.push(data);\n }\n }\n }\n return colValues;\n }\n\n /**\n * Return the filter's value of a specified column\n * @param {Number} index Column index\n * @return {String} Filter value\n */\n getFilterValue(index) {\n if (!this.fltGrid) {\n return;\n }\n let fltValue = '';\n let flt = this.getFilterElement(index);\n if (!flt) {\n return fltValue;\n }\n\n let fltColType = this.getFilterType(index);\n if (fltColType !== MULTIPLE && fltColType !== CHECKLIST) {\n fltValue = flt.value;\n }\n //mutiple select\n else if (fltColType === MULTIPLE) {\n fltValue = this.feature('dropdown').getValues(index);\n }\n //checklist\n else if (fltColType === CHECKLIST) {\n fltValue = this.feature('checkList').getValues(index);\n }\n //return an empty string if collection is empty or contains a single\n //empty string\n if (isArray(fltValue) && fltValue.length === 0 ||\n (fltValue.length === 1 && fltValue[0] === '')) {\n fltValue = '';\n }\n\n return fltValue;\n }\n\n /**\n * Return the filters' values\n * @return {Array} List of filters' values\n */\n getFiltersValue() {\n if (!this.fltGrid) {\n return;\n }\n let searchArgs = [];\n for (let i = 0, len = this.fltIds.length; i < len; i++) {\n let fltValue = this.getFilterValue(i);\n if (isArray(fltValue)) {\n searchArgs.push(fltValue);\n } else {\n searchArgs.push(trim(fltValue));\n }\n }\n return searchArgs;\n }\n\n /**\n * Return the ID of a specified column's filter\n * @param {Number} index Column's index\n * @return {String} ID of the filter element\n */\n getFilterId(index) {\n if (!this.fltGrid) {\n return;\n }\n return this.fltIds[index];\n }\n\n /**\n * Return the list of ids of filters matching a specified type.\n * Note: hidden filters are also returned\n *\n * @param {String} type Filter type string ('input', 'select', 'multiple',\n * 'checklist')\n * @param {Boolean} bool If true returns columns indexes instead of IDs\n * @return {[type]} List of element IDs or column indexes\n */\n getFiltersByType(type, bool) {\n if (!this.fltGrid) {\n return;\n }\n let arr = [];\n for (let i = 0, len = this.fltIds.length; i < len; i++) {\n let fltType = this.getFilterType(i);\n if (fltType === type.toLowerCase()) {\n let a = bool ? i : this.fltIds[i];\n arr.push(a);\n }\n }\n return arr;\n }\n\n /**\n * Return the filter's DOM element for a given column\n * @param {Number} index Column's index\n * @return {DOMElement}\n */\n getFilterElement(index) {\n let fltId = this.fltIds[index];\n return elm(fltId);\n }\n\n /**\n * Return the number of cells for a given row index\n * @param {Number} rowIndex Index of the row\n * @return {Number} Number of cells\n */\n getCellsNb(rowIndex = 0) {\n let tr = this.tbl.rows[rowIndex >= 0 ? rowIndex : 0];\n return tr.cells.length;\n }\n\n /**\n * Return the number of filterable rows starting from reference row if\n * defined\n * @param {Boolean} includeHeaders Include the headers row\n * @return {Number} Number of filterable rows\n */\n getRowsNb(includeHeaders) {\n let s = isUndef(this.refRow) ? 0 : this.refRow;\n let ntrs = this.tbl.rows.length;\n if (includeHeaders) {\n s = 0;\n }\n return parseInt(ntrs - s, 10);\n }\n\n /**\n * Return the data of a given cell\n * @param {DOMElement} cell Cell's DOM object\n * @return {String}\n */\n getCellData(cell) {\n let idx = cell.cellIndex;\n //Fire customCellData callback\n if (this.customCellDataCols.indexOf(idx) !== -1) {\n return this.customCellData(this, cell, idx);\n } else {\n return getText(cell);\n }\n }\n\n /**\n * Return the table data with following format:\n * [\n * [rowIndex, [value0, value1...]],\n * [rowIndex, [value0, value1...]]\n * ]\n * @param {Boolean} includeHeaders Optional: include headers row\n * @param {Boolean} excludeHiddenCols Optional: exclude hidden columns\n * @return {Array}\n *\n * TODO: provide an API returning data in JSON format\n */\n getTableData(includeHeaders = false, excludeHiddenCols = false) {\n let rows = this.tbl.rows;\n let nbRows = this.getRowsNb(true);\n let tblData = [];\n if (includeHeaders) {\n let headers = this.getHeadersText(excludeHiddenCols);\n tblData.push([this.getHeadersRowIndex(), headers]);\n }\n for (let k = this.refRow; k < nbRows; k++) {\n let rowData = [k, []];\n let cells = rows[k].cells;\n for (let j = 0, len = cells.length; j < len; j++) {\n if (excludeHiddenCols && this.hasExtension('colsVisibility')) {\n if (this.extension('colsVisibility').isColHidden(j)) {\n continue;\n }\n }\n let cellData = this.getCellData(cells[j]);\n rowData[1].push(cellData);\n }\n tblData.push(rowData);\n }\n return tblData;\n }\n\n /**\n * Return the filtered data with following format:\n * [\n * [rowIndex, [value0, value1...]],\n * [rowIndex, [value0, value1...]]\n * ]\n * @param {Boolean} includeHeaders Optional: include headers row\n * @param {Boolean} excludeHiddenCols Optional: exclude hidden columns\n * @return {Array}\n *\n * TODO: provide an API returning data in JSON format\n */\n getFilteredData(includeHeaders = false, excludeHiddenCols = false) {\n if (!this.validRowsIndex) {\n return [];\n }\n let rows = this.tbl.rows,\n filteredData = [];\n if (includeHeaders) {\n let headers = this.getHeadersText(excludeHiddenCols);\n filteredData.push([this.getHeadersRowIndex(), headers]);\n }\n\n let validRows = this.getValidRows(true);\n for (let i = 0; i < validRows.length; i++) {\n let rData = [this.validRowsIndex[i], []],\n cells = rows[this.validRowsIndex[i]].cells;\n for (let k = 0; k < cells.length; k++) {\n if (excludeHiddenCols && this.hasExtension('colsVisibility')) {\n if (this.extension('colsVisibility').isColHidden(k)) {\n continue;\n }\n }\n let cellData = this.getCellData(cells[k]);\n rData[1].push(cellData);\n }\n filteredData.push(rData);\n }\n return filteredData;\n }\n\n /**\n * Return the filtered data for a given column index\n * @param {Number} colIndex Colmun's index\n * @param {Boolean} includeHeaders Optional: include headers row\n * @return {Array} Flat list of values ['val0','val1','val2'...]\n *\n * TODO: provide an API returning data in JSON format\n */\n getFilteredDataCol(colIndex, includeHeaders = false) {\n if (isUndef(colIndex)) {\n return [];\n }\n let data = this.getFilteredData(),\n colData = [];\n if (includeHeaders) {\n colData.push(this.getHeadersText()[colIndex]);\n }\n for (let i = 0, len = data.length; i < len; i++) {\n let r = data[i],\n //cols values of current row\n d = r[1],\n //data of searched column\n c = d[colIndex];\n colData.push(c);\n }\n return colData;\n }\n\n /**\n * Get the display value of a row\n * @param {HTMLTableRowElement} row DOM element of the row\n * @return {String} Usually 'none' or ''\n */\n getRowDisplay(row) {\n return row.style.display;\n }\n\n /**\n * Validate/invalidate row by setting the 'validRow' attribute on the row\n * @param {Number} rowIndex Index of the row\n * @param {Boolean} isValid\n */\n validateRow(rowIndex, isValid) {\n let row = this.tbl.rows[rowIndex];\n if (!row || typeof isValid !== 'boolean') {\n return;\n }\n\n // always visible rows are valid\n if (this.hasVisibleRows && this.visibleRows.indexOf(rowIndex) !== -1) {\n isValid = true;\n }\n\n let displayFlag = isValid ? '' : NONE,\n validFlag = isValid ? 'true' : 'false';\n row.style.display = displayFlag;\n\n if (this.paging) {\n row.setAttribute('validRow', validFlag);\n }\n\n if (isValid) {\n if (this.validRowsIndex.indexOf(rowIndex) === -1) {\n this.validRowsIndex.push(rowIndex);\n }\n\n this.onRowValidated(this, rowIndex);\n\n this.emitter.emit('row-validated', this, rowIndex);\n }\n }\n\n /**\n * Validate all filterable rows\n */\n validateAllRows() {\n if (!this.initialized) {\n return;\n }\n this.validRowsIndex = [];\n for (let k = this.refRow; k < this.nbFilterableRows; k++) {\n this.validateRow(k, true);\n }\n }\n\n /**\n * Set search value to a given filter\n * @param {Number} index Column's index\n * @param {String or Array} query searcharg Search term\n */\n setFilterValue(index, query = '') {\n if (!this.fltGrid) {\n return;\n }\n let slc = this.getFilterElement(index),\n fltColType = this.getFilterType(index);\n\n if (fltColType !== MULTIPLE && fltColType !== CHECKLIST) {\n if (this.loadFltOnDemand && !this.initialized) {\n this.emitter.emit('build-select-filter', this, index,\n this.linkedFilters, this.isExternalFlt);\n }\n slc.value = query;\n }\n //multiple selects\n else if (fltColType === MULTIPLE) {\n let values = isArray(query) ? query :\n query.split(' ' + this.orOperator + ' ');\n\n if (this.loadFltOnDemand && !this.initialized) {\n this.emitter.emit('build-select-filter', this, index,\n this.linkedFilters, this.isExternalFlt);\n }\n\n this.emitter.emit('select-options', this, index, values);\n }\n //checklist\n else if (fltColType === CHECKLIST) {\n let values = [];\n if (this.loadFltOnDemand && !this.initialized) {\n this.emitter.emit('build-checklist-filter', this, index,\n this.linkedFilters);\n }\n if (isArray(query)) {\n values = query;\n } else {\n query = matchCase(query, this.caseSensitive);\n values = query.split(' ' + this.orOperator + ' ');\n }\n\n this.emitter.emit('select-checklist-options', this, index, values);\n }\n }\n\n /**\n * Set them columns' widths as per configuration\n * @param {Element} tbl DOM element\n */\n setColWidths(tbl) {\n if (!this.hasColWidths) {\n return;\n }\n tbl = tbl || this.tbl;\n\n let nbCols = this.nbCells;\n let colWidths = this.colWidths;\n let colTags = tag(tbl, 'col');\n let tblHasColTag = colTags.length > 0;\n let frag = !tblHasColTag ? doc.createDocumentFragment() : null;\n for (let k = 0; k < nbCols; k++) {\n let col;\n if (tblHasColTag) {\n col = colTags[k];\n } else {\n col = createElm('col');\n frag.appendChild(col);\n }\n col.style.width = colWidths[k];\n }\n if (!tblHasColTag) {\n tbl.insertBefore(frag, tbl.firstChild);\n }\n }\n\n /**\n * Makes defined rows always visible\n */\n enforceVisibility() {\n if (!this.hasVisibleRows) {\n return;\n }\n let nbRows = this.getRowsNb(true);\n for (let i = 0, len = this.visibleRows.length; i < len; i++) {\n let row = this.visibleRows[i];\n //row index cannot be > nrows\n if (row <= nbRows) {\n this.validateRow(row, true);\n }\n }\n }\n\n /**\n * Clear all the filters' values\n */\n clearFilters() {\n if (!this.fltGrid) {\n return;\n }\n\n this.emitter.emit('before-clearing-filters', this);\n this.onBeforeReset(this, this.getFiltersValue());\n\n for (let i = 0, len = this.fltIds.length; i < len; i++) {\n this.setFilterValue(i, '');\n }\n\n this.filter();\n\n this.onAfterReset(this);\n this.emitter.emit('after-clearing-filters', this);\n }\n\n /**\n * Clears filtered columns visual indicator (background color)\n */\n clearActiveColumns() {\n for (let i = 0, len = this.getCellsNb(this.headersRow); i < len; i++) {\n removeClass(this.getHeaderElement(i), this.activeColumnsCssClass);\n }\n }\n\n /**\n * Mark currently filtered column\n * @param {Number} colIndex Column index\n */\n markActiveColumn(colIndex) {\n let header = this.getHeaderElement(colIndex);\n if (hasClass(header, this.activeColumnsCssClass)) {\n return;\n }\n this.onBeforeActiveColumn(this, colIndex);\n\n addClass(header, this.activeColumnsCssClass);\n\n this.onAfterActiveColumn(this, colIndex);\n }\n\n /**\n * Return the ID of the current active filter\n * @returns {String}\n */\n getActiveFilterId() {\n return this.activeFilterId;\n }\n\n /**\n * Set the ID of the current active filter\n * @param {String} filterId Element ID\n */\n setActiveFilterId(filterId) {\n this.activeFilterId = filterId;\n }\n\n /**\n * Return the column index for a given filter ID\n * @param {string} [filterId=''] Filter ID\n * @returns {Number} Column index\n */\n getColumnIndexFromFilterId(filterId = '') {\n let idx = filterId.split('_')[0];\n idx = idx.split(this.prfxFlt)[1];\n return parseInt(idx, 10);\n }\n\n /**\n * Builds filter element ID for a given column index\n * @param {any} colIndex\n * @returns {String} Filter element ID string\n * @private\n */\n buildFilterId(colIndex) {\n return `${this.prfxFlt}${colIndex}_${this.id}`;\n }\n\n /**\n * Make specified column's filter active\n * @param colIndex Index of a column\n */\n activateFilter(colIndex) {\n if (isUndef(colIndex)) {\n return;\n }\n this.setActiveFilterId(this.getFilterId(colIndex));\n }\n\n /**\n * Refresh the filters subject to linking ('select', 'multiple',\n * 'checklist' type)\n */\n linkFilters() {\n if (!this.linkedFilters || !this.activeFilterId) {\n return;\n }\n let slcA1 = this.getFiltersByType(SELECT, true),\n slcA2 = this.getFiltersByType(MULTIPLE, true),\n slcA3 = this.getFiltersByType(CHECKLIST, true),\n slcIndex = slcA1.concat(slcA2);\n slcIndex = slcIndex.concat(slcA3);\n\n let activeIdx = this.getColumnIndexFromFilterId(this.activeFilterId);\n\n for (let i = 0, len = slcIndex.length; i < len; i++) {\n let colIdx = slcIndex[i];\n let curSlc = elm(this.fltIds[colIdx]);\n let slcSelectedValue = this.getFilterValue(colIdx);\n\n // Welcome to cyclomatic complexity hell :)\n // TODO: simplify/refactor if statement\n if (activeIdx !== colIdx ||\n (this.paging && slcA1.indexOf(colIdx) !== -1 &&\n activeIdx === colIdx) ||\n (!this.paging && (slcA3.indexOf(colIdx) !== -1 ||\n slcA2.indexOf(colIdx) !== -1)) ||\n slcSelectedValue === this.getClearFilterText(colIdx)) {\n\n //1st option needs to be inserted\n if (this.loadFltOnDemand) {\n let opt0 = createOpt(this.getClearFilterText(colIdx), '');\n curSlc.innerHTML = '';\n curSlc.appendChild(opt0);\n }\n\n if (slcA3.indexOf(colIdx) !== -1) {\n this.emitter.emit('build-checklist-filter', this, colIdx,\n true);\n } else {\n this.emitter.emit('build-select-filter', this, colIdx,\n true);\n }\n\n this.setFilterValue(colIdx, slcSelectedValue);\n }\n }\n }\n\n /**\n * Determines if passed filter column implements exact query match\n * @param {Number} colIndex Column index\n * @return {Boolean}\n */\n isExactMatch(colIndex) {\n let fltType = this.getFilterType(colIndex);\n return this.exactMatchByCol[colIndex] || this.exactMatch ||\n fltType !== INPUT;\n }\n\n /**\n * Checks if passed row is valid\n * @param {Number} rowIndex Row index\n * @returns {Boolean}\n */\n isRowValid(rowIndex) {\n return this.getValidRows().indexOf(rowIndex) !== -1;\n }\n\n /**\n * Checks if passed row is visible\n * @param {Number} rowIndex Row index\n * @returns {Boolean}\n */\n isRowDisplayed(rowIndex) {\n let row = this.tbl.rows[rowIndex];\n return this.getRowDisplay(row) === '';\n }\n\n /**\n * Checks if specified column filter ignores diacritics.\n * Note this is only valid for input filter types.\n * @param {Number} colIndex Column index\n * @returns {Boolean}\n */\n ignoresDiacritics(colIndex) {\n let ignoreDiac = this.ignoreDiacritics;\n if (isArray(ignoreDiac)) {\n return ignoreDiac[colIndex];\n }\n return Boolean(ignoreDiac);\n }\n\n /**\n * Returns clear all text for specified filter column\n * @param {Number} colIndex Column index\n * @returns {String}\n */\n getClearFilterText(colIndex) {\n let clearText = this.clearFilterText;\n if (isArray(clearText)) {\n return clearText[colIndex];\n }\n return clearText;\n }\n\n /**\n * Check if passed script or stylesheet is already imported\n * @param {String} filePath Ressource path\n * @param {String} type Possible values: 'script' or 'link'\n * @return {Boolean}\n */\n isImported(filePath, type = 'script') {\n let imported = false,\n attr = type === 'script' ? 'src' : 'href',\n files = tag(doc, type);\n for (let i = 0, len = files.length; i < len; i++) {\n if (isUndef(files[i][attr])) {\n continue;\n }\n if (files[i][attr].match(filePath)) {\n imported = true;\n break;\n }\n }\n return imported;\n }\n\n /**\n * Import script or stylesheet\n * @param {String} fileId Ressource ID\n * @param {String} filePath Ressource path\n * @param {Function} callback Callback\n * @param {String} type Possible values: 'script' or 'link'\n */\n import(fileId, filePath, callback, type = 'script') {\n if (this.isImported(filePath, type)) {\n return;\n }\n let o = this,\n isLoaded = false,\n file,\n head = tag(doc, 'head')[0];\n\n if (type.toLowerCase() === 'link') {\n file = createElm('link',\n ['id', fileId], ['type', 'text/css'],\n ['rel', 'stylesheet'], ['href', filePath]\n );\n } else {\n file = createElm('script',\n ['id', fileId],\n ['type', 'text/javascript'], ['src', filePath]\n );\n }\n\n //Browser <> IE onload event works only for scripts, not for stylesheets\n file.onload = file.onreadystatechange = () => {\n if (!isLoaded &&\n (!this.readyState || this.readyState === 'loaded' ||\n this.readyState === 'complete')) {\n isLoaded = true;\n if (typeof callback === 'function') {\n callback.call(null, o);\n }\n }\n };\n file.onerror = function () {\n throw new Error(`TableFilter could not load: ${filePath}`);\n };\n head.appendChild(file);\n }\n\n /**\n * Check if table has filters grid\n * @return {Boolean}\n */\n isInitialized() {\n return this.initialized;\n }\n\n /**\n * Get list of filter IDs\n * @return {[type]} [description]\n */\n getFiltersId() {\n return this.fltIds || [];\n }\n\n /**\n * Get filtered (valid) rows indexes\n * @param {Boolean} reCalc Force calculation of filtered rows list\n * @return {Array} List of row indexes\n */\n getValidRows(reCalc) {\n if (!reCalc) {\n return this.validRowsIndex;\n }\n\n let nbRows = this.getRowsNb(true);\n this.validRowsIndex = [];\n for (let k = this.refRow; k < nbRows; k++) {\n let r = this.tbl.rows[k];\n if (!this.paging) {\n if (this.getRowDisplay(r) !== NONE) {\n this.validRowsIndex.push(r.rowIndex);\n }\n } else {\n if (r.getAttribute('validRow') === 'true' ||\n r.getAttribute('validRow') === null) {\n this.validRowsIndex.push(r.rowIndex);\n }\n }\n }\n return this.validRowsIndex;\n }\n\n /**\n * Get the index of the row containing the filters\n * @return {Number}\n */\n getFiltersRowIndex() {\n return this.filtersRowIndex;\n }\n\n /**\n * Get the index of the headers row\n * @return {Number}\n */\n getHeadersRowIndex() {\n return this.headersRow;\n }\n\n /**\n * Get the row index from where the filtering process start (1st filterable\n * row)\n * @return {Number}\n */\n getStartRowIndex() {\n return this.refRow;\n }\n\n /**\n * Get the index of the last row\n * @return {Number}\n */\n getLastRowIndex() {\n let nbRows = this.getRowsNb(true);\n return (nbRows - 1);\n }\n\n /**\n * Determine whether the specified column has one of the passed types\n * @param {Number} colIndex Column index\n * @param {Array} [types=[]] List of column types\n * @returns {Boolean}\n */\n hasType(colIndex, types = []) {\n if (!this.hasColTypes) {\n return false;\n }\n let colType = this.colTypes[colIndex];\n if (isObj(colType)) {\n colType = colType.type;\n }\n return types.indexOf(colType) !== -1;\n }\n\n /**\n * Get the header DOM element for a given column index\n * @param {Number} colIndex Column index\n * @return {Element}\n */\n getHeaderElement(colIndex) {\n let table = this.gridLayout ? this.Mod.gridLayout.headTbl : this.tbl;\n let tHead = tag(table, 'thead');\n let headersRow = this.headersRow;\n let header;\n for (let i = 0; i < this.nbCells; i++) {\n if (i !== colIndex) {\n continue;\n }\n if (tHead.length === 0) {\n header = table.rows[headersRow].cells[i];\n }\n if (tHead.length === 1) {\n header = tHead[0].rows[headersRow].cells[i];\n }\n break;\n }\n return header;\n }\n\n /**\n * Return the list of headers' text\n * @param {Boolean} excludeHiddenCols Optional: exclude hidden columns\n * @return {Array} list of headers' text\n */\n getHeadersText(excludeHiddenCols = false) {\n let headers = [];\n for (let j = 0; j < this.nbCells; j++) {\n if (excludeHiddenCols && this.hasExtension('colsVisibility')) {\n if (this.extension('colsVisibility').isColHidden(j)) {\n continue;\n }\n }\n let header = this.getHeaderElement(j);\n let headerText = getFirstTextNode(header);\n headers.push(headerText);\n }\n return headers;\n }\n\n /**\n * Return the filter type for a specified column\n * @param {Number} colIndex Column's index\n * @return {String}\n */\n getFilterType(colIndex) {\n let colType = this.cfg['col_' + colIndex];\n return !colType ? INPUT : colType.toLowerCase();\n }\n\n /**\n * Get the total number of filterable rows\n * @return {Number}\n */\n getFilterableRowsNb() {\n return this.getRowsNb(false);\n }\n\n /**\n * Return the total number of valid rows\n * @param {Boolean} [reCalc=false] Forces calculation of filtered rows\n * @returns {Number}\n */\n getValidRowsNb(reCalc = false) {\n return this.getValidRows(reCalc).length;\n }\n\n /**\n * Get the configuration object (literal object)\n * @return {Object}\n */\n config() {\n return this.cfg;\n }\n}\n" }, { - "__docId__": 779, + "__docId__": 783, "kind": "variable", "static": true, "variation": null, @@ -16533,7 +16607,7 @@ } }, { - "__docId__": 780, + "__docId__": 784, "kind": "class", "static": true, "variation": null, @@ -16559,7 +16633,7 @@ "interface": false }, { - "__docId__": 781, + "__docId__": 785, "kind": "constructor", "static": false, "variation": null, @@ -16614,7 +16688,7 @@ "generator": false }, { - "__docId__": 782, + "__docId__": 786, "kind": "member", "static": false, "variation": null, @@ -16634,7 +16708,7 @@ } }, { - "__docId__": 783, + "__docId__": 787, "kind": "member", "static": false, "variation": null, @@ -16654,7 +16728,7 @@ } }, { - "__docId__": 784, + "__docId__": 788, "kind": "member", "static": false, "variation": null, @@ -16674,7 +16748,7 @@ } }, { - "__docId__": 785, + "__docId__": 789, "kind": "member", "static": false, "variation": null, @@ -16694,7 +16768,7 @@ } }, { - "__docId__": 786, + "__docId__": 790, "kind": "member", "static": false, "variation": null, @@ -16714,7 +16788,7 @@ } }, { - "__docId__": 787, + "__docId__": 791, "kind": "member", "static": false, "variation": null, @@ -16734,7 +16808,7 @@ } }, { - "__docId__": 788, + "__docId__": 792, "kind": "member", "static": false, "variation": null, @@ -16754,7 +16828,7 @@ } }, { - "__docId__": 789, + "__docId__": 793, "kind": "member", "static": false, "variation": null, @@ -16774,7 +16848,7 @@ } }, { - "__docId__": 790, + "__docId__": 794, "kind": "member", "static": false, "variation": null, @@ -16794,7 +16868,7 @@ } }, { - "__docId__": 791, + "__docId__": 795, "kind": "member", "static": false, "variation": null, @@ -16812,7 +16886,7 @@ } }, { - "__docId__": 792, + "__docId__": 796, "kind": "member", "static": false, "variation": null, @@ -16830,7 +16904,7 @@ } }, { - "__docId__": 793, + "__docId__": 797, "kind": "member", "static": false, "variation": null, @@ -16848,7 +16922,7 @@ } }, { - "__docId__": 794, + "__docId__": 798, "kind": "member", "static": false, "variation": null, @@ -16866,7 +16940,7 @@ } }, { - "__docId__": 795, + "__docId__": 799, "kind": "member", "static": false, "variation": null, @@ -16884,7 +16958,7 @@ } }, { - "__docId__": 796, + "__docId__": 800, "kind": "member", "static": false, "variation": null, @@ -16904,7 +16978,7 @@ } }, { - "__docId__": 797, + "__docId__": 801, "kind": "member", "static": false, "variation": null, @@ -16922,7 +16996,7 @@ } }, { - "__docId__": 798, + "__docId__": 802, "kind": "member", "static": false, "variation": null, @@ -16940,7 +17014,7 @@ } }, { - "__docId__": 799, + "__docId__": 803, "kind": "member", "static": false, "variation": null, @@ -16960,7 +17034,7 @@ } }, { - "__docId__": 800, + "__docId__": 804, "kind": "member", "static": false, "variation": null, @@ -16980,7 +17054,7 @@ } }, { - "__docId__": 801, + "__docId__": 805, "kind": "member", "static": false, "variation": null, @@ -17000,7 +17074,7 @@ } }, { - "__docId__": 802, + "__docId__": 806, "kind": "member", "static": false, "variation": null, @@ -17020,7 +17094,7 @@ } }, { - "__docId__": 803, + "__docId__": 807, "kind": "member", "static": false, "variation": null, @@ -17040,7 +17114,7 @@ } }, { - "__docId__": 804, + "__docId__": 808, "kind": "member", "static": false, "variation": null, @@ -17060,7 +17134,7 @@ } }, { - "__docId__": 805, + "__docId__": 809, "kind": "member", "static": false, "variation": null, @@ -17080,7 +17154,7 @@ } }, { - "__docId__": 806, + "__docId__": 810, "kind": "member", "static": false, "variation": null, @@ -17100,7 +17174,7 @@ } }, { - "__docId__": 807, + "__docId__": 811, "kind": "member", "static": false, "variation": null, @@ -17120,7 +17194,7 @@ } }, { - "__docId__": 808, + "__docId__": 812, "kind": "member", "static": false, "variation": null, @@ -17140,7 +17214,7 @@ } }, { - "__docId__": 809, + "__docId__": 813, "kind": "member", "static": false, "variation": null, @@ -17160,7 +17234,7 @@ } }, { - "__docId__": 810, + "__docId__": 814, "kind": "member", "static": false, "variation": null, @@ -17180,7 +17254,7 @@ } }, { - "__docId__": 811, + "__docId__": 815, "kind": "member", "static": false, "variation": null, @@ -17200,7 +17274,7 @@ } }, { - "__docId__": 812, + "__docId__": 816, "kind": "member", "static": false, "variation": null, @@ -17220,7 +17294,7 @@ } }, { - "__docId__": 813, + "__docId__": 817, "kind": "member", "static": false, "variation": null, @@ -17240,7 +17314,7 @@ } }, { - "__docId__": 814, + "__docId__": 818, "kind": "member", "static": false, "variation": null, @@ -17260,7 +17334,7 @@ } }, { - "__docId__": 815, + "__docId__": 819, "kind": "member", "static": false, "variation": null, @@ -17280,7 +17354,7 @@ } }, { - "__docId__": 816, + "__docId__": 820, "kind": "member", "static": false, "variation": null, @@ -17300,7 +17374,7 @@ } }, { - "__docId__": 817, + "__docId__": 821, "kind": "member", "static": false, "variation": null, @@ -17320,7 +17394,7 @@ } }, { - "__docId__": 818, + "__docId__": 822, "kind": "member", "static": false, "variation": null, @@ -17340,7 +17414,7 @@ } }, { - "__docId__": 819, + "__docId__": 823, "kind": "member", "static": false, "variation": null, @@ -17360,7 +17434,7 @@ } }, { - "__docId__": 820, + "__docId__": 824, "kind": "member", "static": false, "variation": null, @@ -17380,7 +17454,7 @@ } }, { - "__docId__": 821, + "__docId__": 825, "kind": "member", "static": false, "variation": null, @@ -17400,7 +17474,7 @@ } }, { - "__docId__": 822, + "__docId__": 826, "kind": "member", "static": false, "variation": null, @@ -17420,7 +17494,7 @@ } }, { - "__docId__": 823, + "__docId__": 827, "kind": "member", "static": false, "variation": null, @@ -17440,7 +17514,7 @@ } }, { - "__docId__": 824, + "__docId__": 828, "kind": "member", "static": false, "variation": null, @@ -17460,7 +17534,7 @@ } }, { - "__docId__": 825, + "__docId__": 829, "kind": "member", "static": false, "variation": null, @@ -17480,7 +17554,7 @@ } }, { - "__docId__": 826, + "__docId__": 830, "kind": "member", "static": false, "variation": null, @@ -17500,7 +17574,7 @@ } }, { - "__docId__": 827, + "__docId__": 831, "kind": "member", "static": false, "variation": null, @@ -17520,7 +17594,7 @@ } }, { - "__docId__": 828, + "__docId__": 832, "kind": "member", "static": false, "variation": null, @@ -17540,7 +17614,7 @@ } }, { - "__docId__": 829, + "__docId__": 833, "kind": "member", "static": false, "variation": null, @@ -17560,7 +17634,7 @@ } }, { - "__docId__": 830, + "__docId__": 834, "kind": "member", "static": false, "variation": null, @@ -17580,7 +17654,7 @@ } }, { - "__docId__": 831, + "__docId__": 835, "kind": "member", "static": false, "variation": null, @@ -17600,7 +17674,7 @@ } }, { - "__docId__": 832, + "__docId__": 836, "kind": "member", "static": false, "variation": null, @@ -17620,7 +17694,7 @@ } }, { - "__docId__": 833, + "__docId__": 837, "kind": "member", "static": false, "variation": null, @@ -17640,7 +17714,7 @@ } }, { - "__docId__": 834, + "__docId__": 838, "kind": "member", "static": false, "variation": null, @@ -17661,7 +17735,7 @@ } }, { - "__docId__": 835, + "__docId__": 839, "kind": "member", "static": false, "variation": null, @@ -17681,7 +17755,7 @@ } }, { - "__docId__": 836, + "__docId__": 840, "kind": "member", "static": false, "variation": null, @@ -17701,7 +17775,7 @@ } }, { - "__docId__": 837, + "__docId__": 841, "kind": "member", "static": false, "variation": null, @@ -17721,7 +17795,7 @@ } }, { - "__docId__": 838, + "__docId__": 842, "kind": "member", "static": false, "variation": null, @@ -17741,7 +17815,7 @@ } }, { - "__docId__": 839, + "__docId__": 843, "kind": "member", "static": false, "variation": null, @@ -17761,7 +17835,7 @@ } }, { - "__docId__": 840, + "__docId__": 844, "kind": "member", "static": false, "variation": null, @@ -17781,7 +17855,7 @@ } }, { - "__docId__": 841, + "__docId__": 845, "kind": "member", "static": false, "variation": null, @@ -17801,7 +17875,7 @@ } }, { - "__docId__": 842, + "__docId__": 846, "kind": "member", "static": false, "variation": null, @@ -17821,7 +17895,7 @@ } }, { - "__docId__": 843, + "__docId__": 847, "kind": "member", "static": false, "variation": null, @@ -17841,7 +17915,7 @@ } }, { - "__docId__": 844, + "__docId__": 848, "kind": "member", "static": false, "variation": null, @@ -17861,7 +17935,7 @@ } }, { - "__docId__": 845, + "__docId__": 849, "kind": "member", "static": false, "variation": null, @@ -17881,7 +17955,7 @@ } }, { - "__docId__": 846, + "__docId__": 850, "kind": "member", "static": false, "variation": null, @@ -17901,7 +17975,7 @@ } }, { - "__docId__": 847, + "__docId__": 851, "kind": "member", "static": false, "variation": null, @@ -17922,7 +17996,7 @@ } }, { - "__docId__": 848, + "__docId__": 852, "kind": "member", "static": false, "variation": null, @@ -17942,7 +18016,7 @@ } }, { - "__docId__": 849, + "__docId__": 853, "kind": "member", "static": false, "variation": null, @@ -17962,7 +18036,7 @@ } }, { - "__docId__": 850, + "__docId__": 854, "kind": "member", "static": false, "variation": null, @@ -17982,7 +18056,7 @@ } }, { - "__docId__": 851, + "__docId__": 855, "kind": "member", "static": false, "variation": null, @@ -18002,7 +18076,7 @@ } }, { - "__docId__": 852, + "__docId__": 856, "kind": "member", "static": false, "variation": null, @@ -18022,7 +18096,7 @@ } }, { - "__docId__": 853, + "__docId__": 857, "kind": "member", "static": false, "variation": null, @@ -18042,7 +18116,7 @@ } }, { - "__docId__": 854, + "__docId__": 858, "kind": "member", "static": false, "variation": null, @@ -18062,7 +18136,7 @@ } }, { - "__docId__": 855, + "__docId__": 859, "kind": "member", "static": false, "variation": null, @@ -18082,7 +18156,7 @@ } }, { - "__docId__": 856, + "__docId__": 860, "kind": "member", "static": false, "variation": null, @@ -18103,7 +18177,7 @@ } }, { - "__docId__": 857, + "__docId__": 861, "kind": "member", "static": false, "variation": null, @@ -18123,7 +18197,7 @@ } }, { - "__docId__": 858, + "__docId__": 862, "kind": "member", "static": false, "variation": null, @@ -18143,7 +18217,7 @@ } }, { - "__docId__": 859, + "__docId__": 863, "kind": "member", "static": false, "variation": null, @@ -18163,7 +18237,7 @@ } }, { - "__docId__": 860, + "__docId__": 864, "kind": "member", "static": false, "variation": null, @@ -18183,7 +18257,7 @@ } }, { - "__docId__": 861, + "__docId__": 865, "kind": "member", "static": false, "variation": null, @@ -18203,7 +18277,7 @@ } }, { - "__docId__": 862, + "__docId__": 866, "kind": "member", "static": false, "variation": null, @@ -18223,7 +18297,7 @@ } }, { - "__docId__": 863, + "__docId__": 867, "kind": "member", "static": false, "variation": null, @@ -18243,7 +18317,7 @@ } }, { - "__docId__": 864, + "__docId__": 868, "kind": "member", "static": false, "variation": null, @@ -18263,7 +18337,7 @@ } }, { - "__docId__": 865, + "__docId__": 869, "kind": "member", "static": false, "variation": null, @@ -18283,7 +18357,7 @@ } }, { - "__docId__": 866, + "__docId__": 870, "kind": "member", "static": false, "variation": null, @@ -18303,7 +18377,7 @@ } }, { - "__docId__": 867, + "__docId__": 871, "kind": "member", "static": false, "variation": null, @@ -18323,7 +18397,7 @@ } }, { - "__docId__": 868, + "__docId__": 872, "kind": "member", "static": false, "variation": null, @@ -18343,7 +18417,7 @@ } }, { - "__docId__": 869, + "__docId__": 873, "kind": "member", "static": false, "variation": null, @@ -18363,7 +18437,7 @@ } }, { - "__docId__": 870, + "__docId__": 874, "kind": "member", "static": false, "variation": null, @@ -18383,7 +18457,7 @@ } }, { - "__docId__": 871, + "__docId__": 875, "kind": "member", "static": false, "variation": null, @@ -18403,7 +18477,7 @@ } }, { - "__docId__": 872, + "__docId__": 876, "kind": "member", "static": false, "variation": null, @@ -18423,7 +18497,7 @@ } }, { - "__docId__": 873, + "__docId__": 877, "kind": "member", "static": false, "variation": null, @@ -18443,7 +18517,7 @@ } }, { - "__docId__": 874, + "__docId__": 878, "kind": "member", "static": false, "variation": null, @@ -18463,7 +18537,7 @@ } }, { - "__docId__": 875, + "__docId__": 879, "kind": "member", "static": false, "variation": null, @@ -18483,7 +18557,7 @@ } }, { - "__docId__": 876, + "__docId__": 880, "kind": "member", "static": false, "variation": null, @@ -18503,7 +18577,7 @@ } }, { - "__docId__": 877, + "__docId__": 881, "kind": "member", "static": false, "variation": null, @@ -18523,7 +18597,7 @@ } }, { - "__docId__": 878, + "__docId__": 882, "kind": "member", "static": false, "variation": null, @@ -18543,7 +18617,7 @@ } }, { - "__docId__": 879, + "__docId__": 883, "kind": "member", "static": false, "variation": null, @@ -18563,7 +18637,7 @@ } }, { - "__docId__": 880, + "__docId__": 884, "kind": "member", "static": false, "variation": null, @@ -18583,7 +18657,7 @@ } }, { - "__docId__": 881, + "__docId__": 885, "kind": "member", "static": false, "variation": null, @@ -18603,7 +18677,7 @@ } }, { - "__docId__": 882, + "__docId__": 886, "kind": "member", "static": false, "variation": null, @@ -18623,7 +18697,7 @@ } }, { - "__docId__": 883, + "__docId__": 887, "kind": "member", "static": false, "variation": null, @@ -18643,7 +18717,7 @@ } }, { - "__docId__": 884, + "__docId__": 888, "kind": "member", "static": false, "variation": null, @@ -18663,7 +18737,7 @@ } }, { - "__docId__": 885, + "__docId__": 889, "kind": "member", "static": false, "variation": null, @@ -18683,7 +18757,7 @@ } }, { - "__docId__": 886, + "__docId__": 890, "kind": "member", "static": false, "variation": null, @@ -18703,7 +18777,7 @@ } }, { - "__docId__": 887, + "__docId__": 891, "kind": "member", "static": false, "variation": null, @@ -18723,7 +18797,7 @@ } }, { - "__docId__": 888, + "__docId__": 892, "kind": "member", "static": false, "variation": null, @@ -18743,7 +18817,7 @@ } }, { - "__docId__": 889, + "__docId__": 893, "kind": "member", "static": false, "variation": null, @@ -18763,7 +18837,7 @@ } }, { - "__docId__": 890, + "__docId__": 894, "kind": "member", "static": false, "variation": null, @@ -18783,7 +18857,7 @@ } }, { - "__docId__": 891, + "__docId__": 895, "kind": "member", "static": false, "variation": null, @@ -18803,7 +18877,7 @@ } }, { - "__docId__": 892, + "__docId__": 896, "kind": "member", "static": false, "variation": null, @@ -18823,7 +18897,7 @@ } }, { - "__docId__": 893, + "__docId__": 897, "kind": "member", "static": false, "variation": null, @@ -18843,7 +18917,7 @@ } }, { - "__docId__": 894, + "__docId__": 898, "kind": "member", "static": false, "variation": null, @@ -18863,7 +18937,7 @@ } }, { - "__docId__": 895, + "__docId__": 899, "kind": "member", "static": false, "variation": null, @@ -18883,7 +18957,7 @@ } }, { - "__docId__": 896, + "__docId__": 900, "kind": "member", "static": false, "variation": null, @@ -18903,7 +18977,7 @@ } }, { - "__docId__": 897, + "__docId__": 901, "kind": "member", "static": false, "variation": null, @@ -18923,7 +18997,7 @@ } }, { - "__docId__": 898, + "__docId__": 902, "kind": "member", "static": false, "variation": null, @@ -18943,7 +19017,7 @@ } }, { - "__docId__": 899, + "__docId__": 903, "kind": "member", "static": false, "variation": null, @@ -18963,7 +19037,7 @@ } }, { - "__docId__": 900, + "__docId__": 904, "kind": "member", "static": false, "variation": null, @@ -18983,7 +19057,7 @@ } }, { - "__docId__": 901, + "__docId__": 905, "kind": "member", "static": false, "variation": null, @@ -19003,7 +19077,7 @@ } }, { - "__docId__": 902, + "__docId__": 906, "kind": "member", "static": false, "variation": null, @@ -19023,7 +19097,7 @@ } }, { - "__docId__": 903, + "__docId__": 907, "kind": "member", "static": false, "variation": null, @@ -19043,7 +19117,7 @@ } }, { - "__docId__": 904, + "__docId__": 908, "kind": "member", "static": false, "variation": null, @@ -19063,7 +19137,7 @@ } }, { - "__docId__": 905, + "__docId__": 909, "kind": "member", "static": false, "variation": null, @@ -19083,7 +19157,7 @@ } }, { - "__docId__": 906, + "__docId__": 910, "kind": "member", "static": false, "variation": null, @@ -19103,7 +19177,7 @@ } }, { - "__docId__": 907, + "__docId__": 911, "kind": "member", "static": false, "variation": null, @@ -19123,7 +19197,7 @@ } }, { - "__docId__": 908, + "__docId__": 912, "kind": "member", "static": false, "variation": null, @@ -19140,7 +19214,7 @@ } }, { - "__docId__": 909, + "__docId__": 913, "kind": "member", "static": false, "variation": null, @@ -19157,7 +19231,7 @@ } }, { - "__docId__": 910, + "__docId__": 914, "kind": "member", "static": false, "variation": null, @@ -19174,7 +19248,7 @@ } }, { - "__docId__": 911, + "__docId__": 915, "kind": "member", "static": false, "variation": null, @@ -19191,7 +19265,7 @@ } }, { - "__docId__": 912, + "__docId__": 916, "kind": "member", "static": false, "variation": null, @@ -19208,7 +19282,7 @@ } }, { - "__docId__": 913, + "__docId__": 917, "kind": "member", "static": false, "variation": null, @@ -19225,7 +19299,7 @@ } }, { - "__docId__": 914, + "__docId__": 918, "kind": "member", "static": false, "variation": null, @@ -19242,7 +19316,7 @@ } }, { - "__docId__": 915, + "__docId__": 919, "kind": "member", "static": false, "variation": null, @@ -19259,7 +19333,7 @@ } }, { - "__docId__": 916, + "__docId__": 920, "kind": "member", "static": false, "variation": null, @@ -19279,7 +19353,7 @@ } }, { - "__docId__": 917, + "__docId__": 921, "kind": "member", "static": false, "variation": null, @@ -19299,7 +19373,7 @@ } }, { - "__docId__": 918, + "__docId__": 922, "kind": "member", "static": false, "variation": null, @@ -19319,7 +19393,7 @@ } }, { - "__docId__": 919, + "__docId__": 923, "kind": "member", "static": false, "variation": null, @@ -19339,7 +19413,7 @@ } }, { - "__docId__": 920, + "__docId__": 924, "kind": "member", "static": false, "variation": null, @@ -19359,7 +19433,7 @@ } }, { - "__docId__": 921, + "__docId__": 925, "kind": "member", "static": false, "variation": null, @@ -19379,7 +19453,7 @@ } }, { - "__docId__": 922, + "__docId__": 926, "kind": "member", "static": false, "variation": null, @@ -19399,7 +19473,7 @@ } }, { - "__docId__": 923, + "__docId__": 927, "kind": "member", "static": false, "variation": null, @@ -19416,7 +19490,7 @@ } }, { - "__docId__": 924, + "__docId__": 928, "kind": "member", "static": false, "variation": null, @@ -19433,7 +19507,7 @@ } }, { - "__docId__": 925, + "__docId__": 929, "kind": "method", "static": false, "variation": null, @@ -19447,7 +19521,7 @@ "generator": false }, { - "__docId__": 926, + "__docId__": 930, "kind": "member", "static": false, "variation": null, @@ -19465,7 +19539,7 @@ } }, { - "__docId__": 927, + "__docId__": 931, "kind": "member", "static": false, "variation": null, @@ -19488,7 +19562,7 @@ } }, { - "__docId__": 928, + "__docId__": 932, "kind": "method", "static": false, "variation": null, @@ -19513,7 +19587,7 @@ "generator": false }, { - "__docId__": 929, + "__docId__": 933, "kind": "member", "static": false, "variation": null, @@ -19531,7 +19605,7 @@ } }, { - "__docId__": 930, + "__docId__": 934, "kind": "member", "static": false, "variation": null, @@ -19549,7 +19623,7 @@ } }, { - "__docId__": 931, + "__docId__": 935, "kind": "method", "static": false, "variation": null, @@ -19574,7 +19648,7 @@ "generator": false }, { - "__docId__": 932, + "__docId__": 936, "kind": "member", "static": false, "variation": null, @@ -19592,7 +19666,7 @@ } }, { - "__docId__": 933, + "__docId__": 937, "kind": "member", "static": false, "variation": null, @@ -19610,7 +19684,7 @@ } }, { - "__docId__": 934, + "__docId__": 938, "kind": "member", "static": false, "variation": null, @@ -19628,7 +19702,7 @@ } }, { - "__docId__": 935, + "__docId__": 939, "kind": "member", "static": false, "variation": null, @@ -19646,7 +19720,7 @@ } }, { - "__docId__": 936, + "__docId__": 940, "kind": "member", "static": false, "variation": null, @@ -19664,7 +19738,7 @@ } }, { - "__docId__": 937, + "__docId__": 941, "kind": "method", "static": false, "variation": null, @@ -19678,7 +19752,7 @@ "generator": false }, { - "__docId__": 938, + "__docId__": 942, "kind": "member", "static": false, "variation": null, @@ -19696,7 +19770,7 @@ } }, { - "__docId__": 939, + "__docId__": 943, "kind": "method", "static": false, "variation": null, @@ -19721,7 +19795,7 @@ "generator": false }, { - "__docId__": 940, + "__docId__": 944, "kind": "method", "static": false, "variation": null, @@ -19735,7 +19809,7 @@ "generator": false }, { - "__docId__": 941, + "__docId__": 945, "kind": "member", "static": false, "variation": null, @@ -19753,7 +19827,7 @@ } }, { - "__docId__": 942, + "__docId__": 946, "kind": "method", "static": false, "variation": null, @@ -19772,7 +19846,7 @@ "generator": false }, { - "__docId__": 943, + "__docId__": 947, "kind": "method", "static": false, "variation": null, @@ -19786,7 +19860,7 @@ "generator": false }, { - "__docId__": 944, + "__docId__": 948, "kind": "member", "static": false, "variation": null, @@ -19804,7 +19878,7 @@ } }, { - "__docId__": 945, + "__docId__": 949, "kind": "member", "static": false, "variation": null, @@ -19822,7 +19896,7 @@ } }, { - "__docId__": 946, + "__docId__": 950, "kind": "method", "static": false, "variation": null, @@ -19867,7 +19941,7 @@ "generator": false }, { - "__docId__": 947, + "__docId__": 951, "kind": "method", "static": false, "variation": null, @@ -19902,7 +19976,7 @@ "generator": false }, { - "__docId__": 948, + "__docId__": 952, "kind": "method", "static": false, "variation": null, @@ -19935,7 +20009,7 @@ "generator": false }, { - "__docId__": 949, + "__docId__": 953, "kind": "method", "static": false, "variation": null, @@ -19949,7 +20023,7 @@ "generator": false }, { - "__docId__": 950, + "__docId__": 954, "kind": "method", "static": false, "variation": null, @@ -19974,7 +20048,7 @@ "generator": false }, { - "__docId__": 951, + "__docId__": 955, "kind": "method", "static": false, "variation": null, @@ -20007,7 +20081,7 @@ "generator": false }, { - "__docId__": 952, + "__docId__": 956, "kind": "method", "static": false, "variation": null, @@ -20040,7 +20114,7 @@ "generator": false }, { - "__docId__": 953, + "__docId__": 957, "kind": "method", "static": false, "variation": null, @@ -20054,7 +20128,7 @@ "generator": false }, { - "__docId__": 954, + "__docId__": 958, "kind": "method", "static": false, "variation": null, @@ -20068,7 +20142,7 @@ "generator": false }, { - "__docId__": 955, + "__docId__": 959, "kind": "member", "static": false, "variation": null, @@ -20086,7 +20160,7 @@ } }, { - "__docId__": 956, + "__docId__": 960, "kind": "method", "static": false, "variation": null, @@ -20118,7 +20192,7 @@ "generator": false }, { - "__docId__": 957, + "__docId__": 961, "kind": "method", "static": false, "variation": null, @@ -20132,7 +20206,7 @@ "generator": false }, { - "__docId__": 958, + "__docId__": 962, "kind": "member", "static": false, "variation": null, @@ -20150,7 +20224,7 @@ } }, { - "__docId__": 959, + "__docId__": 963, "kind": "member", "static": false, "variation": null, @@ -20168,7 +20242,7 @@ } }, { - "__docId__": 960, + "__docId__": 964, "kind": "member", "static": false, "variation": null, @@ -20186,7 +20260,7 @@ } }, { - "__docId__": 961, + "__docId__": 965, "kind": "member", "static": false, "variation": null, @@ -20204,7 +20278,7 @@ } }, { - "__docId__": 962, + "__docId__": 966, "kind": "method", "static": false, "variation": null, @@ -20218,7 +20292,7 @@ "generator": false }, { - "__docId__": 963, + "__docId__": 967, "kind": "member", "static": false, "variation": null, @@ -20236,7 +20310,7 @@ } }, { - "__docId__": 964, + "__docId__": 968, "kind": "member", "static": false, "variation": null, @@ -20254,7 +20328,7 @@ } }, { - "__docId__": 965, + "__docId__": 969, "kind": "member", "static": false, "variation": null, @@ -20272,7 +20346,7 @@ } }, { - "__docId__": 966, + "__docId__": 970, "kind": "member", "static": false, "variation": null, @@ -20290,7 +20364,7 @@ } }, { - "__docId__": 967, + "__docId__": 971, "kind": "method", "static": false, "variation": null, @@ -20304,7 +20378,7 @@ "generator": false }, { - "__docId__": 968, + "__docId__": 972, "kind": "member", "static": false, "variation": null, @@ -20322,7 +20396,7 @@ } }, { - "__docId__": 969, + "__docId__": 973, "kind": "method", "static": false, "variation": null, @@ -20336,7 +20410,7 @@ "generator": false }, { - "__docId__": 970, + "__docId__": 974, "kind": "method", "static": false, "variation": null, @@ -20369,7 +20443,7 @@ "generator": false }, { - "__docId__": 971, + "__docId__": 975, "kind": "method", "static": false, "variation": null, @@ -20402,7 +20476,7 @@ "generator": false }, { - "__docId__": 972, + "__docId__": 976, "kind": "method", "static": false, "variation": null, @@ -20416,7 +20490,7 @@ "generator": false }, { - "__docId__": 973, + "__docId__": 977, "kind": "member", "static": false, "variation": null, @@ -20434,7 +20508,7 @@ } }, { - "__docId__": 974, + "__docId__": 978, "kind": "member", "static": false, "variation": null, @@ -20452,7 +20526,7 @@ } }, { - "__docId__": 975, + "__docId__": 979, "kind": "method", "static": false, "variation": null, @@ -20511,7 +20585,7 @@ "generator": false }, { - "__docId__": 976, + "__docId__": 980, "kind": "method", "static": false, "variation": null, @@ -20574,7 +20648,7 @@ "generator": false }, { - "__docId__": 977, + "__docId__": 981, "kind": "method", "static": false, "variation": null, @@ -20607,7 +20681,7 @@ "generator": false }, { - "__docId__": 978, + "__docId__": 982, "kind": "method", "static": false, "variation": null, @@ -20629,7 +20703,7 @@ "generator": false }, { - "__docId__": 979, + "__docId__": 983, "kind": "method", "static": false, "variation": null, @@ -20662,7 +20736,7 @@ "generator": false }, { - "__docId__": 980, + "__docId__": 984, "kind": "method", "static": false, "variation": null, @@ -20705,7 +20779,7 @@ "generator": false }, { - "__docId__": 981, + "__docId__": 985, "kind": "method", "static": false, "variation": null, @@ -20738,7 +20812,7 @@ "generator": false }, { - "__docId__": 982, + "__docId__": 986, "kind": "method", "static": false, "variation": null, @@ -20771,7 +20845,7 @@ "generator": false }, { - "__docId__": 983, + "__docId__": 987, "kind": "method", "static": false, "variation": null, @@ -20804,7 +20878,7 @@ "generator": false }, { - "__docId__": 984, + "__docId__": 988, "kind": "method", "static": false, "variation": null, @@ -20837,7 +20911,7 @@ "generator": false }, { - "__docId__": 985, + "__docId__": 989, "kind": "method", "static": false, "variation": null, @@ -20880,7 +20954,7 @@ "generator": false }, { - "__docId__": 986, + "__docId__": 990, "kind": "method", "static": false, "variation": null, @@ -20923,7 +20997,7 @@ "generator": false }, { - "__docId__": 987, + "__docId__": 991, "kind": "method", "static": false, "variation": null, @@ -20966,7 +21040,7 @@ "generator": false }, { - "__docId__": 988, + "__docId__": 992, "kind": "method", "static": false, "variation": null, @@ -20999,7 +21073,7 @@ "generator": false }, { - "__docId__": 989, + "__docId__": 993, "kind": "method", "static": false, "variation": null, @@ -21034,7 +21108,7 @@ "generator": false }, { - "__docId__": 990, + "__docId__": 994, "kind": "method", "static": false, "variation": null, @@ -21048,7 +21122,7 @@ "generator": false }, { - "__docId__": 991, + "__docId__": 995, "kind": "member", "static": false, "variation": null, @@ -21066,7 +21140,7 @@ } }, { - "__docId__": 992, + "__docId__": 996, "kind": "method", "static": false, "variation": null, @@ -21101,7 +21175,7 @@ "generator": false }, { - "__docId__": 993, + "__docId__": 997, "kind": "method", "static": false, "variation": null, @@ -21126,7 +21200,7 @@ "generator": false }, { - "__docId__": 994, + "__docId__": 998, "kind": "method", "static": false, "variation": null, @@ -21140,7 +21214,7 @@ "generator": false }, { - "__docId__": 995, + "__docId__": 999, "kind": "method", "static": false, "variation": null, @@ -21154,7 +21228,7 @@ "generator": false }, { - "__docId__": 996, + "__docId__": 1000, "kind": "method", "static": false, "variation": null, @@ -21168,7 +21242,7 @@ "generator": false }, { - "__docId__": 997, + "__docId__": 1001, "kind": "method", "static": false, "variation": null, @@ -21193,7 +21267,7 @@ "generator": false }, { - "__docId__": 998, + "__docId__": 1002, "kind": "method", "static": false, "variation": null, @@ -21221,7 +21295,7 @@ "generator": false }, { - "__docId__": 999, + "__docId__": 1003, "kind": "method", "static": false, "variation": null, @@ -21246,7 +21320,7 @@ "generator": false }, { - "__docId__": 1000, + "__docId__": 1004, "kind": "member", "static": false, "variation": null, @@ -21264,7 +21338,7 @@ } }, { - "__docId__": 1001, + "__docId__": 1005, "kind": "method", "static": false, "variation": null, @@ -21305,7 +21379,7 @@ "generator": false }, { - "__docId__": 1002, + "__docId__": 1006, "kind": "method", "static": false, "variation": null, @@ -21344,7 +21418,7 @@ "generator": false }, { - "__docId__": 1003, + "__docId__": 1007, "kind": "method", "static": false, "variation": null, @@ -21369,7 +21443,7 @@ "generator": false }, { - "__docId__": 1004, + "__docId__": 1008, "kind": "method", "static": false, "variation": null, @@ -21383,7 +21457,7 @@ "generator": false }, { - "__docId__": 1005, + "__docId__": 1009, "kind": "method", "static": false, "variation": null, @@ -21416,7 +21490,7 @@ "generator": false }, { - "__docId__": 1006, + "__docId__": 1010, "kind": "method", "static": false, "variation": null, @@ -21455,7 +21529,7 @@ "generator": false }, { - "__docId__": 1007, + "__docId__": 1011, "kind": "method", "static": false, "variation": null, @@ -21494,7 +21568,7 @@ "generator": false }, { - "__docId__": 1008, + "__docId__": 1012, "kind": "method", "static": false, "variation": null, @@ -21533,7 +21607,7 @@ "generator": false }, { - "__docId__": 1009, + "__docId__": 1013, "kind": "method", "static": false, "variation": null, @@ -21572,7 +21646,7 @@ "generator": false }, { - "__docId__": 1010, + "__docId__": 1014, "kind": "method", "static": false, "variation": null, @@ -21615,7 +21689,7 @@ "generator": false }, { - "__docId__": 1011, + "__docId__": 1015, "kind": "method", "static": false, "variation": null, @@ -21670,7 +21744,7 @@ "generator": false }, { - "__docId__": 1012, + "__docId__": 1016, "kind": "method", "static": false, "variation": null, @@ -21692,7 +21766,7 @@ "generator": false }, { - "__docId__": 1013, + "__docId__": 1017, "kind": "method", "static": false, "variation": null, @@ -21714,7 +21788,7 @@ "generator": false }, { - "__docId__": 1014, + "__docId__": 1018, "kind": "method", "static": false, "variation": null, @@ -21747,7 +21821,7 @@ "generator": false }, { - "__docId__": 1015, + "__docId__": 1019, "kind": "member", "static": false, "variation": null, @@ -21765,7 +21839,7 @@ } }, { - "__docId__": 1016, + "__docId__": 1020, "kind": "method", "static": false, "variation": null, @@ -21787,7 +21861,7 @@ "generator": false }, { - "__docId__": 1017, + "__docId__": 1021, "kind": "method", "static": false, "variation": null, @@ -21809,7 +21883,7 @@ "generator": false }, { - "__docId__": 1018, + "__docId__": 1022, "kind": "method", "static": false, "variation": null, @@ -21831,7 +21905,7 @@ "generator": false }, { - "__docId__": 1019, + "__docId__": 1023, "kind": "method", "static": false, "variation": null, @@ -21853,7 +21927,7 @@ "generator": false }, { - "__docId__": 1020, + "__docId__": 1024, "kind": "method", "static": false, "variation": null, @@ -21904,7 +21978,7 @@ "generator": false }, { - "__docId__": 1021, + "__docId__": 1025, "kind": "method", "static": false, "variation": null, @@ -21937,7 +22011,7 @@ "generator": false }, { - "__docId__": 1022, + "__docId__": 1026, "kind": "method", "static": false, "variation": null, @@ -21970,7 +22044,7 @@ "generator": false }, { - "__docId__": 1023, + "__docId__": 1027, "kind": "method", "static": false, "variation": null, @@ -22003,7 +22077,7 @@ "generator": false }, { - "__docId__": 1024, + "__docId__": 1028, "kind": "method", "static": false, "variation": null, @@ -22025,7 +22099,7 @@ "generator": false }, { - "__docId__": 1025, + "__docId__": 1029, "kind": "method", "static": false, "variation": null, @@ -22066,7 +22140,7 @@ "generator": false }, { - "__docId__": 1026, + "__docId__": 1030, "kind": "method", "static": false, "variation": null, @@ -22088,7 +22162,7 @@ "generator": false }, { - "__docId__": 1027, + "__docId__": 1031, "kind": "file", "static": true, "variation": null, @@ -22101,7 +22175,7 @@ "content": "\n/**\n * Types utilities\n */\n\nconst UNDEFINED = void 0;\n\n/**\n * Return an empty function\n * @return {Function}\n */\nexport const EMPTY_FN = function() {};\n\n/**\n * Check passed argument is an object\n * @param {Object} obj\n * @return {Boolean}\n */\nexport const isObj =\n (obj) => Object.prototype.toString.call(obj) === '[object Object]';\n\n/**\n * Check passed argument is a function\n * @param {Function} obj\n * @return {Boolean}\n */\nexport const isFn =\n (obj) => Object.prototype.toString.call(obj) === '[object Function]';\n\n/**\n * Check passed argument is an array\n * @param {Array} obj\n * @return {Boolean}\n */\nexport const isArray =\n (obj) => Object.prototype.toString.call(obj) === '[object Array]';\n\n/**\n * Check passed argument is a string\n * @param {String} obj objue\n * @returns {Boolean}\n */\nexport const isString =\n (obj) => Object.prototype.toString.call(obj) === '[object String]';\n\n/**\n * Check passed argument is a number\n * @param {Number} obj\n * @returns {Boolean}\n */\nexport const isNumber =\n (obj) => Object.prototype.toString.call(obj) === '[object Number]';\n\n/**\n * Check passed argument is undefined\n * @param {Any} obj\n * @return {Boolean}\n */\nexport const isUndef = (obj) => obj === UNDEFINED;\n\n/**\n * Check passed argument is null\n * @param {Any} obj\n * @return {Boolean}\n */\nexport const isNull = obj => obj === null;\n\n/**\n * Check passed argument is empty (undefined, null or empty string)\n * @param {Any} obj\n * @return {Boolean}\n */\nexport const isEmpty = (obj) => isUndef(obj) || isNull(obj) || obj.length === 0;\n" }, { - "__docId__": 1028, + "__docId__": 1032, "kind": "variable", "static": true, "variation": null, @@ -22121,7 +22195,7 @@ } }, { - "__docId__": 1029, + "__docId__": 1033, "kind": "function", "static": true, "variation": null, @@ -22146,7 +22220,7 @@ "generator": false }, { - "__docId__": 1030, + "__docId__": 1034, "kind": "variable", "static": true, "variation": null, @@ -22186,7 +22260,7 @@ } }, { - "__docId__": 1031, + "__docId__": 1035, "kind": "variable", "static": true, "variation": null, @@ -22226,7 +22300,7 @@ } }, { - "__docId__": 1032, + "__docId__": 1036, "kind": "variable", "static": true, "variation": null, @@ -22266,7 +22340,7 @@ } }, { - "__docId__": 1033, + "__docId__": 1037, "kind": "variable", "static": true, "variation": null, @@ -22312,7 +22386,7 @@ } }, { - "__docId__": 1034, + "__docId__": 1038, "kind": "variable", "static": true, "variation": null, @@ -22358,7 +22432,7 @@ } }, { - "__docId__": 1035, + "__docId__": 1039, "kind": "variable", "static": true, "variation": null, @@ -22398,7 +22472,7 @@ } }, { - "__docId__": 1036, + "__docId__": 1040, "kind": "variable", "static": true, "variation": null, @@ -22438,7 +22512,7 @@ } }, { - "__docId__": 1037, + "__docId__": 1041, "kind": "variable", "static": true, "variation": null, @@ -22478,7 +22552,7 @@ } }, { - "__docId__": 1039, + "__docId__": 1043, "kind": "external", "static": true, "variation": null, @@ -22491,7 +22565,7 @@ "builtinExternal": true }, { - "__docId__": 1040, + "__docId__": 1044, "kind": "external", "static": true, "variation": null, @@ -22504,7 +22578,7 @@ "builtinExternal": true }, { - "__docId__": 1041, + "__docId__": 1045, "kind": "external", "static": true, "variation": null, @@ -22517,7 +22591,7 @@ "builtinExternal": true }, { - "__docId__": 1042, + "__docId__": 1046, "kind": "external", "static": true, "variation": null, @@ -22530,7 +22604,7 @@ "builtinExternal": true }, { - "__docId__": 1043, + "__docId__": 1047, "kind": "external", "static": true, "variation": null, @@ -22543,7 +22617,7 @@ "builtinExternal": true }, { - "__docId__": 1044, + "__docId__": 1048, "kind": "external", "static": true, "variation": null, @@ -22556,7 +22630,7 @@ "builtinExternal": true }, { - "__docId__": 1045, + "__docId__": 1049, "kind": "external", "static": true, "variation": null, @@ -22569,7 +22643,7 @@ "builtinExternal": true }, { - "__docId__": 1046, + "__docId__": 1050, "kind": "external", "static": true, "variation": null, @@ -22582,7 +22656,7 @@ "builtinExternal": true }, { - "__docId__": 1047, + "__docId__": 1051, "kind": "external", "static": true, "variation": null, @@ -22595,7 +22669,7 @@ "builtinExternal": true }, { - "__docId__": 1048, + "__docId__": 1052, "kind": "external", "static": true, "variation": null, @@ -22608,7 +22682,7 @@ "builtinExternal": true }, { - "__docId__": 1049, + "__docId__": 1053, "kind": "external", "static": true, "variation": null, @@ -22621,7 +22695,7 @@ "builtinExternal": true }, { - "__docId__": 1050, + "__docId__": 1054, "kind": "external", "static": true, "variation": null, @@ -22634,7 +22708,7 @@ "builtinExternal": true }, { - "__docId__": 1051, + "__docId__": 1055, "kind": "external", "static": true, "variation": null, @@ -22647,7 +22721,7 @@ "builtinExternal": true }, { - "__docId__": 1052, + "__docId__": 1056, "kind": "external", "static": true, "variation": null, @@ -22660,7 +22734,7 @@ "builtinExternal": true }, { - "__docId__": 1053, + "__docId__": 1057, "kind": "external", "static": true, "variation": null, @@ -22673,7 +22747,7 @@ "builtinExternal": true }, { - "__docId__": 1054, + "__docId__": 1058, "kind": "external", "static": true, "variation": null, @@ -22686,7 +22760,7 @@ "builtinExternal": true }, { - "__docId__": 1055, + "__docId__": 1059, "kind": "external", "static": true, "variation": null, @@ -22699,7 +22773,7 @@ "builtinExternal": true }, { - "__docId__": 1056, + "__docId__": 1060, "kind": "external", "static": true, "variation": null, @@ -22712,7 +22786,7 @@ "builtinExternal": true }, { - "__docId__": 1057, + "__docId__": 1061, "kind": "external", "static": true, "variation": null, @@ -22725,7 +22799,7 @@ "builtinExternal": true }, { - "__docId__": 1058, + "__docId__": 1062, "kind": "external", "static": true, "variation": null, @@ -22738,7 +22812,7 @@ "builtinExternal": true }, { - "__docId__": 1059, + "__docId__": 1063, "kind": "external", "static": true, "variation": null, @@ -22751,7 +22825,7 @@ "builtinExternal": true }, { - "__docId__": 1060, + "__docId__": 1064, "kind": "external", "static": true, "variation": null, @@ -22764,7 +22838,7 @@ "builtinExternal": true }, { - "__docId__": 1061, + "__docId__": 1065, "kind": "external", "static": true, "variation": null, @@ -22777,7 +22851,7 @@ "builtinExternal": true }, { - "__docId__": 1062, + "__docId__": 1066, "kind": "external", "static": true, "variation": null, @@ -22790,7 +22864,7 @@ "builtinExternal": true }, { - "__docId__": 1063, + "__docId__": 1067, "kind": "external", "static": true, "variation": null, @@ -22803,7 +22877,7 @@ "builtinExternal": true }, { - "__docId__": 1064, + "__docId__": 1068, "kind": "external", "static": true, "variation": null, @@ -22816,7 +22890,7 @@ "builtinExternal": true }, { - "__docId__": 1065, + "__docId__": 1069, "kind": "external", "static": true, "variation": null, @@ -22829,7 +22903,7 @@ "builtinExternal": true }, { - "__docId__": 1066, + "__docId__": 1070, "kind": "external", "static": true, "variation": null, @@ -22842,7 +22916,7 @@ "builtinExternal": true }, { - "__docId__": 1067, + "__docId__": 1071, "kind": "external", "static": true, "variation": null, @@ -22855,7 +22929,7 @@ "builtinExternal": true }, { - "__docId__": 1068, + "__docId__": 1072, "kind": "external", "static": true, "variation": null, @@ -22868,7 +22942,7 @@ "builtinExternal": true }, { - "__docId__": 1069, + "__docId__": 1073, "kind": "external", "static": true, "variation": null, @@ -22881,7 +22955,7 @@ "builtinExternal": true }, { - "__docId__": 1070, + "__docId__": 1074, "kind": "external", "static": true, "variation": null, @@ -22894,7 +22968,7 @@ "builtinExternal": true }, { - "__docId__": 1071, + "__docId__": 1075, "kind": "external", "static": true, "variation": null, @@ -22907,7 +22981,7 @@ "builtinExternal": true }, { - "__docId__": 1072, + "__docId__": 1076, "kind": "external", "static": true, "variation": null, @@ -22920,7 +22994,7 @@ "builtinExternal": true }, { - "__docId__": 1073, + "__docId__": 1077, "kind": "external", "static": true, "variation": null, @@ -22933,7 +23007,7 @@ "builtinExternal": true }, { - "__docId__": 1074, + "__docId__": 1078, "kind": "external", "static": true, "variation": null, @@ -22946,7 +23020,7 @@ "builtinExternal": true }, { - "__docId__": 1075, + "__docId__": 1079, "kind": "external", "static": true, "variation": null, @@ -22959,7 +23033,7 @@ "builtinExternal": true }, { - "__docId__": 1076, + "__docId__": 1080, "kind": "external", "static": true, "variation": null, @@ -22972,7 +23046,7 @@ "builtinExternal": true }, { - "__docId__": 1077, + "__docId__": 1081, "kind": "external", "static": true, "variation": null, @@ -22985,7 +23059,7 @@ "builtinExternal": true }, { - "__docId__": 1078, + "__docId__": 1082, "kind": "external", "static": true, "variation": null, @@ -22998,7 +23072,7 @@ "builtinExternal": true }, { - "__docId__": 1079, + "__docId__": 1083, "kind": "external", "static": true, "variation": null, @@ -23011,7 +23085,7 @@ "builtinExternal": true }, { - "__docId__": 1080, + "__docId__": 1084, "kind": "external", "static": true, "variation": null, @@ -23024,7 +23098,7 @@ "builtinExternal": true }, { - "__docId__": 1081, + "__docId__": 1085, "kind": "external", "static": true, "variation": null, @@ -23037,7 +23111,7 @@ "builtinExternal": true }, { - "__docId__": 1082, + "__docId__": 1086, "kind": "external", "static": true, "variation": null, @@ -23050,7 +23124,7 @@ "builtinExternal": true }, { - "__docId__": 1083, + "__docId__": 1087, "kind": "external", "static": true, "variation": null, @@ -23063,7 +23137,7 @@ "builtinExternal": true }, { - "__docId__": 1084, + "__docId__": 1088, "kind": "external", "static": true, "variation": null, @@ -23076,7 +23150,7 @@ "builtinExternal": true }, { - "__docId__": 1085, + "__docId__": 1089, "kind": "external", "static": true, "variation": null, @@ -23089,7 +23163,7 @@ "builtinExternal": true }, { - "__docId__": 1087, + "__docId__": 1091, "kind": "external", "static": true, "variation": null, @@ -23102,7 +23176,7 @@ "builtinExternal": true }, { - "__docId__": 1088, + "__docId__": 1092, "kind": "external", "static": true, "variation": null, @@ -23115,7 +23189,7 @@ "builtinExternal": true }, { - "__docId__": 1089, + "__docId__": 1093, "kind": "external", "static": true, "variation": null, @@ -23128,7 +23202,7 @@ "builtinExternal": true }, { - "__docId__": 1090, + "__docId__": 1094, "kind": "external", "static": true, "variation": null, @@ -23141,7 +23215,7 @@ "builtinExternal": true }, { - "__docId__": 1091, + "__docId__": 1095, "kind": "external", "static": true, "variation": null, @@ -23154,7 +23228,7 @@ "builtinExternal": true }, { - "__docId__": 1092, + "__docId__": 1096, "kind": "external", "static": true, "variation": null, @@ -23167,7 +23241,7 @@ "builtinExternal": true }, { - "__docId__": 1093, + "__docId__": 1097, "kind": "external", "static": true, "variation": null, @@ -23180,7 +23254,7 @@ "builtinExternal": true }, { - "__docId__": 1094, + "__docId__": 1098, "kind": "external", "static": true, "variation": null, diff --git a/docs/file/src/array.js.html b/docs/file/src/array.js.html index 44215c99..e084bb1f 100644 --- a/docs/file/src/array.js.html +++ b/docs/file/src/array.js.html @@ -3,7 +3,7 @@ - src/array.js | tablefilter v0.4.26 API Document + src/array.js | tablefilter v0.4.27 API Document diff --git a/docs/file/src/const.js.html b/docs/file/src/const.js.html index 3be92986..7d8a0a3a 100644 --- a/docs/file/src/const.js.html +++ b/docs/file/src/const.js.html @@ -3,7 +3,7 @@ - src/const.js | tablefilter v0.4.26 API Document + src/const.js | tablefilter v0.4.27 API Document diff --git a/docs/file/src/cookie.js.html b/docs/file/src/cookie.js.html index 48aaa041..d4e32b6d 100644 --- a/docs/file/src/cookie.js.html +++ b/docs/file/src/cookie.js.html @@ -3,7 +3,7 @@ - src/cookie.js | tablefilter v0.4.26 API Document + src/cookie.js | tablefilter v0.4.27 API Document diff --git a/docs/file/src/dom.js.html b/docs/file/src/dom.js.html index dfe7053b..d5fef268 100644 --- a/docs/file/src/dom.js.html +++ b/docs/file/src/dom.js.html @@ -3,7 +3,7 @@ - src/dom.js | tablefilter v0.4.26 API Document + src/dom.js | tablefilter v0.4.27 API Document diff --git a/docs/file/src/emitter.js.html b/docs/file/src/emitter.js.html index febc4e90..0dd927ca 100644 --- a/docs/file/src/emitter.js.html +++ b/docs/file/src/emitter.js.html @@ -3,7 +3,7 @@ - src/emitter.js | tablefilter v0.4.26 API Document + src/emitter.js | tablefilter v0.4.27 API Document diff --git a/docs/file/src/event.js.html b/docs/file/src/event.js.html index 1d8f01dd..a5cc8a65 100644 --- a/docs/file/src/event.js.html +++ b/docs/file/src/event.js.html @@ -3,7 +3,7 @@ - src/event.js | tablefilter v0.4.26 API Document + src/event.js | tablefilter v0.4.27 API Document @@ -156,11 +156,10 @@ export const addEvt = (obj, type, func, capture) => { * the capturing or in the bubbling phase */ export const removeEvt = (obj, type, func, capture) => { - if (obj.detachEvent) { - obj.detachEvent('on' + type, func); - } - else if (obj.removeEventListener) { + if (obj.removeEventListener) { obj.removeEventListener(type, func, capture); + } else if (obj.detachEvent) { + obj.detachEvent('on' + type, func); } else { obj['on' + type] = null; } @@ -171,7 +170,7 @@ export const removeEvt = (obj, type, func, capture) => { * * @param {Event} evt Event on the DOM */ -export const stopEvt = evt =>{ +export const stopEvt = (evt) => { if (!evt) { evt = root.event; } @@ -188,7 +187,7 @@ export const stopEvt = evt =>{ * * @param {Event} evt Event on the DOM */ -export const cancelEvt = evt => { +export const cancelEvt = (evt) => { if (!evt) { evt = root.event; } @@ -205,7 +204,7 @@ export const cancelEvt = evt => { * @param {Event} evt Event on the DOM * @returns {DOMElement} */ -export const targetEvt = evt => { +export const targetEvt = (evt) => { if (!evt) { evt = root.event; } @@ -218,7 +217,7 @@ export const targetEvt = evt => { * @param {Event} evt Event on the DOM * @returns {Number} */ -export const keyCode = evt => { +export const keyCode = (evt) => { return evt.charCode ? evt.charCode : (evt.keyCode ? evt.keyCode : (evt.which ? evt.which : 0)); }; diff --git a/docs/file/src/extensions/advancedGrid/adapterEzEditTable.js.html b/docs/file/src/extensions/advancedGrid/adapterEzEditTable.js.html index 1f9e788f..6528911d 100644 --- a/docs/file/src/extensions/advancedGrid/adapterEzEditTable.js.html +++ b/docs/file/src/extensions/advancedGrid/adapterEzEditTable.js.html @@ -3,7 +3,7 @@ - src/extensions/advancedGrid/adapterEzEditTable.js | tablefilter v0.4.26 API Document + src/extensions/advancedGrid/adapterEzEditTable.js | tablefilter v0.4.27 API Document diff --git a/docs/file/src/extensions/advancedGrid/advancedGrid.js.html b/docs/file/src/extensions/advancedGrid/advancedGrid.js.html index d4889b17..1e9e3712 100644 --- a/docs/file/src/extensions/advancedGrid/advancedGrid.js.html +++ b/docs/file/src/extensions/advancedGrid/advancedGrid.js.html @@ -3,7 +3,7 @@ - src/extensions/advancedGrid/advancedGrid.js | tablefilter v0.4.26 API Document + src/extensions/advancedGrid/advancedGrid.js | tablefilter v0.4.27 API Document diff --git a/docs/file/src/extensions/colOps/colOps.js.html b/docs/file/src/extensions/colOps/colOps.js.html index 80e59e0b..8c39a71e 100644 --- a/docs/file/src/extensions/colOps/colOps.js.html +++ b/docs/file/src/extensions/colOps/colOps.js.html @@ -3,7 +3,7 @@ - src/extensions/colOps/colOps.js | tablefilter v0.4.26 API Document + src/extensions/colOps/colOps.js | tablefilter v0.4.27 API Document diff --git a/docs/file/src/extensions/colsVisibility/colsVisibility.js.html b/docs/file/src/extensions/colsVisibility/colsVisibility.js.html index 15247e35..ebb9c31f 100644 --- a/docs/file/src/extensions/colsVisibility/colsVisibility.js.html +++ b/docs/file/src/extensions/colsVisibility/colsVisibility.js.html @@ -3,7 +3,7 @@ - src/extensions/colsVisibility/colsVisibility.js | tablefilter v0.4.26 API Document + src/extensions/colsVisibility/colsVisibility.js | tablefilter v0.4.27 API Document diff --git a/docs/file/src/extensions/filtersVisibility/filtersVisibility.js.html b/docs/file/src/extensions/filtersVisibility/filtersVisibility.js.html index 34202099..f63fa0ea 100644 --- a/docs/file/src/extensions/filtersVisibility/filtersVisibility.js.html +++ b/docs/file/src/extensions/filtersVisibility/filtersVisibility.js.html @@ -3,7 +3,7 @@ - src/extensions/filtersVisibility/filtersVisibility.js | tablefilter v0.4.26 API Document + src/extensions/filtersVisibility/filtersVisibility.js | tablefilter v0.4.27 API Document diff --git a/docs/file/src/extensions/sort/adapterSortabletable.js.html b/docs/file/src/extensions/sort/adapterSortabletable.js.html index 64f20b20..cfbb91d0 100644 --- a/docs/file/src/extensions/sort/adapterSortabletable.js.html +++ b/docs/file/src/extensions/sort/adapterSortabletable.js.html @@ -3,7 +3,7 @@ - src/extensions/sort/adapterSortabletable.js | tablefilter v0.4.26 API Document + src/extensions/sort/adapterSortabletable.js | tablefilter v0.4.27 API Document diff --git a/docs/file/src/extensions/sort/sort.js.html b/docs/file/src/extensions/sort/sort.js.html index 5bf2b8ef..c6257c02 100644 --- a/docs/file/src/extensions/sort/sort.js.html +++ b/docs/file/src/extensions/sort/sort.js.html @@ -3,7 +3,7 @@ - src/extensions/sort/sort.js | tablefilter v0.4.26 API Document + src/extensions/sort/sort.js | tablefilter v0.4.27 API Document diff --git a/docs/file/src/feature.js.html b/docs/file/src/feature.js.html index 2f940041..d1d24a79 100644 --- a/docs/file/src/feature.js.html +++ b/docs/file/src/feature.js.html @@ -3,7 +3,7 @@ - src/feature.js | tablefilter v0.4.26 API Document + src/feature.js | tablefilter v0.4.27 API Document diff --git a/docs/file/src/modules/alternateRows.js.html b/docs/file/src/modules/alternateRows.js.html index 7d0005ac..b2ed315e 100644 --- a/docs/file/src/modules/alternateRows.js.html +++ b/docs/file/src/modules/alternateRows.js.html @@ -3,7 +3,7 @@ - src/modules/alternateRows.js | tablefilter v0.4.26 API Document + src/modules/alternateRows.js | tablefilter v0.4.27 API Document diff --git a/docs/file/src/modules/checkList.js.html b/docs/file/src/modules/checkList.js.html index e18dd23b..0659bb03 100644 --- a/docs/file/src/modules/checkList.js.html +++ b/docs/file/src/modules/checkList.js.html @@ -3,7 +3,7 @@ - src/modules/checkList.js | tablefilter v0.4.26 API Document + src/modules/checkList.js | tablefilter v0.4.27 API Document diff --git a/docs/file/src/modules/clearButton.js.html b/docs/file/src/modules/clearButton.js.html index 71900ef0..8c4d3679 100644 --- a/docs/file/src/modules/clearButton.js.html +++ b/docs/file/src/modules/clearButton.js.html @@ -3,7 +3,7 @@ - src/modules/clearButton.js | tablefilter v0.4.26 API Document + src/modules/clearButton.js | tablefilter v0.4.27 API Document diff --git a/docs/file/src/modules/dateType.js.html b/docs/file/src/modules/dateType.js.html index 9de72289..5427f163 100644 --- a/docs/file/src/modules/dateType.js.html +++ b/docs/file/src/modules/dateType.js.html @@ -3,7 +3,7 @@ - src/modules/dateType.js | tablefilter v0.4.26 API Document + src/modules/dateType.js | tablefilter v0.4.27 API Document diff --git a/docs/file/src/modules/dropdown.js.html b/docs/file/src/modules/dropdown.js.html index c5d5c586..ab5003f6 100644 --- a/docs/file/src/modules/dropdown.js.html +++ b/docs/file/src/modules/dropdown.js.html @@ -3,7 +3,7 @@ - src/modules/dropdown.js | tablefilter v0.4.26 API Document + src/modules/dropdown.js | tablefilter v0.4.27 API Document diff --git a/docs/file/src/modules/gridLayout.js.html b/docs/file/src/modules/gridLayout.js.html index 052c0eaf..3f0bb157 100644 --- a/docs/file/src/modules/gridLayout.js.html +++ b/docs/file/src/modules/gridLayout.js.html @@ -3,7 +3,7 @@ - src/modules/gridLayout.js | tablefilter v0.4.26 API Document + src/modules/gridLayout.js | tablefilter v0.4.27 API Document diff --git a/docs/file/src/modules/hash.js.html b/docs/file/src/modules/hash.js.html index 3fed612c..5eb6594a 100644 --- a/docs/file/src/modules/hash.js.html +++ b/docs/file/src/modules/hash.js.html @@ -3,7 +3,7 @@ - src/modules/hash.js | tablefilter v0.4.26 API Document + src/modules/hash.js | tablefilter v0.4.27 API Document diff --git a/docs/file/src/modules/help.js.html b/docs/file/src/modules/help.js.html index c32694e2..2701d4ac 100644 --- a/docs/file/src/modules/help.js.html +++ b/docs/file/src/modules/help.js.html @@ -3,7 +3,7 @@ - src/modules/help.js | tablefilter v0.4.26 API Document + src/modules/help.js | tablefilter v0.4.27 API Document @@ -122,8 +122,9 @@

src/modules/help.js

import {Feature} from '../feature';
 import {createElm, createText, elm, removeElm} from '../dom';
-import {addEvt} from '../event';
+import {addEvt, targetEvt, removeEvt} from '../event';
 import {NONE} from '../const';
+import {root} from '../root';
 
 const WIKI_URL = 'https://github.com/koalyptus/TableFilter/wiki/' +
     '4.-Filter-operators';
@@ -202,17 +203,23 @@ export class Help extends Feature {
             'helpCont';
 
         /**
-         * Stores button DOM element
+         * Button DOM element
          * @type {DOMElement}
          */
         this.btn = null;
 
         /**
-         * Stores help container DOM element
+         * Help container DOM element
          * @type {DOMElement}
          */
         this.cont = null;
 
+        /**
+         * Bound mouseup wrapper
+         * @private
+         */
+        this.boundMouseup = null;
+
         /**
          * Default HTML appended to instructions text
          * @type {String}
@@ -227,6 +234,18 @@ export class Help extends Feature {
         this.emitter.on(['init-help'], () => this.init());
     }
 
+    /**
+     * Mouse-up event handler handling popup auto-close behaviour
+     * @private
+     */
+    onMouseup(evt) {
+        let targetElm = targetEvt(evt);
+        if (targetElm !== this.cont) {
+            this.toggle();
+        }
+        return;
+    }
+
     /**
      * Initialise Help instance
      */
@@ -240,6 +259,8 @@ export class Help extends Feature {
         let btn = createElm('span');
         let cont = createElm('div');
 
+        this.boundMouseup = this.onMouseup.bind(this);
+
         //help button is added to defined element
         if (!this.tgtId) {
             tf.setToolbar();
@@ -295,9 +316,13 @@ export class Help extends Feature {
         if (this.enabled === false) {
             return;
         }
+        // ensure mouseup event handler is removed
+        removeEvt(root, 'mouseup', this.boundMouseup);
+
         let divDisplay = this.cont.style.display;
         if (divDisplay === '' || divDisplay === NONE) {
             this.cont.style.display = 'inline';
+            addEvt(root, 'mouseup', this.boundMouseup);
         } else {
             this.cont.style.display = NONE;
         }
@@ -316,6 +341,8 @@ export class Help extends Feature {
         removeElm(this.cont);
         this.cont = null;
 
+        this.boundMouseup = null;
+
         this.initialized = false;
     }
 
diff --git a/docs/file/src/modules/highlightKeywords.js.html b/docs/file/src/modules/highlightKeywords.js.html
index 71053a24..b8b6d769 100644
--- a/docs/file/src/modules/highlightKeywords.js.html
+++ b/docs/file/src/modules/highlightKeywords.js.html
@@ -3,7 +3,7 @@
 
   
   
-  src/modules/highlightKeywords.js | tablefilter v0.4.26 API Document
+  src/modules/highlightKeywords.js | tablefilter v0.4.27 API Document
   
   
   
diff --git a/docs/file/src/modules/loader.js.html b/docs/file/src/modules/loader.js.html
index 804670e0..17974c0f 100644
--- a/docs/file/src/modules/loader.js.html
+++ b/docs/file/src/modules/loader.js.html
@@ -3,7 +3,7 @@
 
   
   
-  src/modules/loader.js | tablefilter v0.4.26 API Document
+  src/modules/loader.js | tablefilter v0.4.27 API Document
   
   
   
diff --git a/docs/file/src/modules/noResults.js.html b/docs/file/src/modules/noResults.js.html
index 4a734584..36b8f0f6 100644
--- a/docs/file/src/modules/noResults.js.html
+++ b/docs/file/src/modules/noResults.js.html
@@ -3,7 +3,7 @@
 
   
   
-  src/modules/noResults.js | tablefilter v0.4.26 API Document
+  src/modules/noResults.js | tablefilter v0.4.27 API Document
   
   
   
diff --git a/docs/file/src/modules/paging.js.html b/docs/file/src/modules/paging.js.html
index 0b77bf15..5bc46dbd 100644
--- a/docs/file/src/modules/paging.js.html
+++ b/docs/file/src/modules/paging.js.html
@@ -3,7 +3,7 @@
 
   
   
-  src/modules/paging.js | tablefilter v0.4.26 API Document
+  src/modules/paging.js | tablefilter v0.4.27 API Document
   
   
   
diff --git a/docs/file/src/modules/popupFilter.js.html b/docs/file/src/modules/popupFilter.js.html
index bca0cbe5..81d64391 100644
--- a/docs/file/src/modules/popupFilter.js.html
+++ b/docs/file/src/modules/popupFilter.js.html
@@ -3,7 +3,7 @@
 
   
   
-  src/modules/popupFilter.js | tablefilter v0.4.26 API Document
+  src/modules/popupFilter.js | tablefilter v0.4.27 API Document
   
   
   
diff --git a/docs/file/src/modules/rowsCounter.js.html b/docs/file/src/modules/rowsCounter.js.html
index 28ccc089..48ad519b 100644
--- a/docs/file/src/modules/rowsCounter.js.html
+++ b/docs/file/src/modules/rowsCounter.js.html
@@ -3,7 +3,7 @@
 
   
   
-  src/modules/rowsCounter.js | tablefilter v0.4.26 API Document
+  src/modules/rowsCounter.js | tablefilter v0.4.27 API Document
   
   
   
diff --git a/docs/file/src/modules/state.js.html b/docs/file/src/modules/state.js.html
index 0f323cdb..a0e4aad4 100644
--- a/docs/file/src/modules/state.js.html
+++ b/docs/file/src/modules/state.js.html
@@ -3,7 +3,7 @@
 
   
   
-  src/modules/state.js | tablefilter v0.4.26 API Document
+  src/modules/state.js | tablefilter v0.4.27 API Document
   
   
   
diff --git a/docs/file/src/modules/statusBar.js.html b/docs/file/src/modules/statusBar.js.html
index 1092071e..e6398beb 100644
--- a/docs/file/src/modules/statusBar.js.html
+++ b/docs/file/src/modules/statusBar.js.html
@@ -3,7 +3,7 @@
 
   
   
-  src/modules/statusBar.js | tablefilter v0.4.26 API Document
+  src/modules/statusBar.js | tablefilter v0.4.27 API Document
   
   
   
diff --git a/docs/file/src/modules/storage.js.html b/docs/file/src/modules/storage.js.html
index 47fc6d40..87f8c028 100644
--- a/docs/file/src/modules/storage.js.html
+++ b/docs/file/src/modules/storage.js.html
@@ -3,7 +3,7 @@
 
   
   
-  src/modules/storage.js | tablefilter v0.4.26 API Document
+  src/modules/storage.js | tablefilter v0.4.27 API Document
   
   
   
diff --git a/docs/file/src/number.js.html b/docs/file/src/number.js.html
index b38f40c7..e80f0068 100644
--- a/docs/file/src/number.js.html
+++ b/docs/file/src/number.js.html
@@ -3,7 +3,7 @@
 
   
   
-  src/number.js | tablefilter v0.4.26 API Document
+  src/number.js | tablefilter v0.4.27 API Document
   
   
   
diff --git a/docs/file/src/root.js.html b/docs/file/src/root.js.html
index 4a8cb96e..8b8f51bb 100644
--- a/docs/file/src/root.js.html
+++ b/docs/file/src/root.js.html
@@ -3,7 +3,7 @@
 
   
   
-  src/root.js | tablefilter v0.4.26 API Document
+  src/root.js | tablefilter v0.4.27 API Document
   
   
   
diff --git a/docs/file/src/sort.js.html b/docs/file/src/sort.js.html
index 3ab93c2f..83f94030 100644
--- a/docs/file/src/sort.js.html
+++ b/docs/file/src/sort.js.html
@@ -3,7 +3,7 @@
 
   
   
-  src/sort.js | tablefilter v0.4.26 API Document
+  src/sort.js | tablefilter v0.4.27 API Document
   
   
   
diff --git a/docs/file/src/string.js.html b/docs/file/src/string.js.html
index b25a7edb..36198372 100644
--- a/docs/file/src/string.js.html
+++ b/docs/file/src/string.js.html
@@ -3,7 +3,7 @@
 
   
   
-  src/string.js | tablefilter v0.4.26 API Document
+  src/string.js | tablefilter v0.4.27 API Document
   
   
   
diff --git a/docs/file/src/tablefilter.js.html b/docs/file/src/tablefilter.js.html
index ee3a88b5..e55e97ce 100644
--- a/docs/file/src/tablefilter.js.html
+++ b/docs/file/src/tablefilter.js.html
@@ -3,7 +3,7 @@
 
   
   
-  src/tablefilter.js | tablefilter v0.4.26 API Document
+  src/tablefilter.js | tablefilter v0.4.27 API Document
   
   
   
diff --git a/docs/file/src/types.js.html b/docs/file/src/types.js.html
index 7259c62e..24d43f2b 100644
--- a/docs/file/src/types.js.html
+++ b/docs/file/src/types.js.html
@@ -3,7 +3,7 @@
 
   
   
-  src/types.js | tablefilter v0.4.26 API Document
+  src/types.js | tablefilter v0.4.27 API Document
   
   
   
diff --git a/docs/function/index.html b/docs/function/index.html
index 4b84b346..1be85339 100644
--- a/docs/function/index.html
+++ b/docs/function/index.html
@@ -3,7 +3,7 @@
 
   
   
-  Function | tablefilter v0.4.26 API Document
+  Function | tablefilter v0.4.27 API Document
   
   
   
diff --git a/docs/identifiers.html b/docs/identifiers.html
index 42fe0b1a..4bf22861 100644
--- a/docs/identifiers.html
+++ b/docs/identifiers.html
@@ -3,7 +3,7 @@
 
   
   
-  Index | tablefilter v0.4.26 API Document
+  Index | tablefilter v0.4.27 API Document
   
   
   
diff --git a/docs/index.html b/docs/index.html
index c3927f5d..37626f37 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -3,7 +3,7 @@
 
   
   
-  tablefilter v0.4.26 API Document
+  tablefilter v0.4.27 API Document
   
   
   
diff --git a/docs/package.json b/docs/package.json
index c870c022..b0f9f5c8 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -1,6 +1,6 @@
 {
   "name": "tablefilter",
-  "version": "0.4.26",
+  "version": "0.4.27",
   "description": "A Javascript library making HTML tables filterable and a bit more",
   "license": "MIT",
   "author": {
diff --git a/docs/source.html b/docs/source.html
index afe6255c..a61c2c74 100644
--- a/docs/source.html
+++ b/docs/source.html
@@ -3,7 +3,7 @@
 
   
   
-  Source | tablefilter v0.4.26 API Document
+  Source | tablefilter v0.4.27 API Document
   
   
   
@@ -140,7 +140,7 @@
       100 %1/1
       545 byte
       22
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/const.js
@@ -165,7 +165,7 @@
       100 %18/18
       1536 byte
       118
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/cookie.js
@@ -173,7 +173,7 @@
       -
       1412 byte
       57
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/dom.js
@@ -192,7 +192,7 @@
       100 %12/12
       4767 byte
       191
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/emitter.js
@@ -200,7 +200,7 @@
       100 %6/6
       1323 byte
       53
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/event.js
@@ -211,9 +211,9 @@
 stopEvt
 targetEvt
       100 %6/6
-      2379 byte
-      102
-      2016-12-07 13:01:36 (UTC)
+      2384 byte
+      101
+      2016-12-03 10:50:54 (UTC)
     
 
       src/extensions/advancedGrid/adapterEzEditTable.js
@@ -221,7 +221,7 @@
       100 %13/13
       18919 byte
       502
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/extensions/advancedGrid/advancedGrid.js
@@ -229,7 +229,7 @@
       -
       90 byte
       2
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/extensions/colOps/colOps.js
@@ -237,7 +237,7 @@
       100 %9/9
       13525 byte
       366
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/extensions/colsVisibility/colsVisibility.js
@@ -245,7 +245,7 @@
       100 %49/49
       20130 byte
       707
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/extensions/filtersVisibility/filtersVisibility.js
@@ -253,7 +253,7 @@
       100 %25/25
       7784 byte
       307
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/extensions/sort/adapterSortabletable.js
@@ -261,7 +261,7 @@
       100 %23/23
       16452 byte
       532
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/extensions/sort/sort.js
@@ -269,7 +269,7 @@
       -
       197 byte
       8
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/feature.js
@@ -277,7 +277,7 @@
       100 %14/14
       1864 byte
       97
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/modules/alternateRows.js
@@ -285,7 +285,7 @@
       100 %9/9
       3507 byte
       138
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/modules/checkList.js
@@ -293,7 +293,7 @@
       100 %18/18
       18399 byte
       570
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/modules/clearButton.js
@@ -301,7 +301,7 @@
       100 %10/10
       3129 byte
       128
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/modules/dateType.js
@@ -309,7 +309,7 @@
       100 %11/11
       3997 byte
       147
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/modules/dropdown.js
@@ -317,7 +317,7 @@
       100 %13/13
       13130 byte
       425
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/modules/gridLayout.js
@@ -325,7 +325,7 @@
       100 %16/16
       14075 byte
       494
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/modules/hash.js
@@ -334,15 +334,15 @@
       100 %10/10
       2981 byte
       126
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/modules/help.js
       Help
       100 %17/17
-      5809 byte
-      200
-      2016-12-07 13:01:36 (UTC)
+      6471 byte
+      227
+      2016-12-03 10:50:54 (UTC)
     
 
       src/modules/highlightKeywords.js
@@ -350,7 +350,7 @@
       100 %10/10
       5405 byte
       179
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/modules/loader.js
@@ -358,7 +358,7 @@
       100 %14/14
       4005 byte
       173
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/modules/noResults.js
@@ -366,7 +366,7 @@
       100 %17/17
       4809 byte
       198
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/modules/paging.js
@@ -374,7 +374,7 @@
       100 %45/45
       27455 byte
       898
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/modules/popupFilter.js
@@ -382,7 +382,7 @@
       100 %26/26
       12712 byte
       446
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/modules/rowsCounter.js
@@ -390,7 +390,7 @@
       100 %13/13
       5643 byte
       197
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/modules/state.js
@@ -398,7 +398,7 @@
       100 %24/24
       14771 byte
       541
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/modules/statusBar.js
@@ -406,7 +406,7 @@
       100 %22/22
       8485 byte
       299
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/modules/storage.js
@@ -415,7 +415,7 @@
       100 %10/10
       3544 byte
       162
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/number.js
@@ -423,7 +423,7 @@
       100 %1/1
       998 byte
       29
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/root.js
@@ -431,7 +431,7 @@
       100 %1/1
       235 byte
       6
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/sort.js
@@ -441,7 +441,7 @@
       100 %3/3
       930 byte
       33
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/string.js
@@ -453,7 +453,7 @@
       100 %5/5
       2082 byte
       76
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/tablefilter.js
@@ -461,7 +461,7 @@
       100 %170/170
       89104 byte
       2971
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
       src/types.js
@@ -477,7 +477,7 @@
       100 %9/9
       1563 byte
       73
-      2016-12-07 13:01:36 (UTC)
+      2016-12-03 10:50:54 (UTC)
     
 
 
diff --git a/docs/variable/index.html b/docs/variable/index.html
index b4454e0d..9c8fc3c5 100644
--- a/docs/variable/index.html
+++ b/docs/variable/index.html
@@ -3,7 +3,7 @@
 
   
   
-  Variable | tablefilter v0.4.26 API Document
+  Variable | tablefilter v0.4.27 API Document
   
   
   
@@ -2443,11 +2443,11 @@ propagation of the event.

- source + source -
import {cancelEvt} from 'tablefilter/src/event.js'
+
import {cancelEvt} from 'tablefilter/src/event.js'

Cancels the event if it is cancelable, without stopping further @@ -3593,11 +3593,11 @@ propagation of the event.

- source + source -
import {keyCode} from 'tablefilter/src/event.js'
+
import {keyCode} from 'tablefilter/src/event.js'

Returns the Unicode value of pressed key

@@ -4059,11 +4059,11 @@ default it returns the string with no casing changes.

- source + source -
import {stopEvt} from 'tablefilter/src/event.js'
+
import {stopEvt} from 'tablefilter/src/event.js'

Prevents further propagation of the current event in the bubbling phase

@@ -4151,11 +4151,11 @@ default it returns the string with no casing changes.

- source + source -
import {targetEvt} from 'tablefilter/src/event.js'
+
import {targetEvt} from 'tablefilter/src/event.js'

Reference to the object that dispatched the event