From 901d8c407dfbd0c730487809302f7ffe03284306 Mon Sep 17 00:00:00 2001 From: Lars Jung Date: Sun, 26 Jun 2016 17:57:25 +0200 Subject: [PATCH] Bundle utils. --- src/_h5ai/public/js/lib/core/event.js | 2 +- src/_h5ai/public/js/lib/core/format.js | 2 +- src/_h5ai/public/js/lib/core/location.js | 2 +- src/_h5ai/public/js/lib/core/resource.js | 2 +- src/_h5ai/public/js/lib/core/types.js | 2 +- src/_h5ai/public/js/lib/ext/contextmenu.js | 2 +- src/_h5ai/public/js/lib/ext/crumb.js | 3 +- src/_h5ai/public/js/lib/ext/download.js | 2 +- src/_h5ai/public/js/lib/ext/filter.js | 6 +- .../public/js/lib/ext/google-analytics.js | 2 +- src/_h5ai/public/js/lib/ext/info.js | 2 +- src/_h5ai/public/js/lib/ext/l10n.js | 2 +- .../public/js/lib/ext/piwik-analytics.js | 2 +- src/_h5ai/public/js/lib/ext/preview-aud.js | 2 +- src/_h5ai/public/js/lib/ext/preview-img.js | 2 +- src/_h5ai/public/js/lib/ext/preview-txt.js | 2 +- src/_h5ai/public/js/lib/ext/preview-vid.js | 2 +- src/_h5ai/public/js/lib/ext/preview.js | 2 +- src/_h5ai/public/js/lib/ext/search.js | 6 +- src/_h5ai/public/js/lib/ext/select.js | 2 +- src/_h5ai/public/js/lib/ext/sort.js | 6 +- src/_h5ai/public/js/lib/ext/thumbnails.js | 2 +- src/_h5ai/public/js/lib/ext/tree.js | 5 +- src/_h5ai/public/js/lib/init.js | 2 +- src/_h5ai/public/js/lib/main/info.js | 2 +- src/_h5ai/public/js/lib/model/item.js | 2 +- src/_h5ai/public/js/lib/server.js | 3 +- src/_h5ai/public/js/lib/{ => util}/dom.js | 2 +- src/_h5ai/public/js/lib/util/index.js | 6 ++ src/_h5ai/public/js/lib/{ => util}/lo.js | 0 src/_h5ai/public/js/lib/util/misc.js | 24 ++++++++ .../lib/{core/util.js => util/naturalCmp.js} | 59 +++++++------------ src/_h5ai/public/js/lib/view/base.js | 2 +- src/_h5ai/public/js/lib/view/notification.js | 2 +- src/_h5ai/public/js/lib/view/sidebar.js | 2 +- src/_h5ai/public/js/lib/view/view.js | 3 +- src/_h5ai/public/js/lib/view/viewmode.js | 3 +- 37 files changed, 88 insertions(+), 86 deletions(-) rename src/_h5ai/public/js/lib/{ => util}/dom.js (99%) create mode 100644 src/_h5ai/public/js/lib/util/index.js rename src/_h5ai/public/js/lib/{ => util}/lo.js (100%) create mode 100644 src/_h5ai/public/js/lib/util/misc.js rename src/_h5ai/public/js/lib/{core/util.js => util/naturalCmp.js} (52%) diff --git a/src/_h5ai/public/js/lib/core/event.js b/src/_h5ai/public/js/lib/core/event.js index 7b7b0c3f..3b19dc17 100644 --- a/src/_h5ai/public/js/lib/core/event.js +++ b/src/_h5ai/public/js/lib/core/event.js @@ -1,4 +1,4 @@ -const {isStr, isFn} = require('../lo'); +const {isStr, isFn} = require('../util'); const subscriptions = {}; diff --git a/src/_h5ai/public/js/lib/core/format.js b/src/_h5ai/public/js/lib/core/format.js index 74747322..91c7dad9 100644 --- a/src/_h5ai/public/js/lib/core/format.js +++ b/src/_h5ai/public/js/lib/core/format.js @@ -1,4 +1,4 @@ -const {isNum} = require('../lo'); +const {isNum} = require('../util'); const decimalMetric = { t: 1000.0, diff --git a/src/_h5ai/public/js/lib/core/location.js b/src/_h5ai/public/js/lib/core/location.js index 7c4dc6b7..092b8792 100644 --- a/src/_h5ai/public/js/lib/core/location.js +++ b/src/_h5ai/public/js/lib/core/location.js @@ -1,4 +1,4 @@ -const {each, values, isFn, difference} = require('../lo'); +const {each, values, isFn, difference} = require('../util'); const {win} = require('../globals'); const {request} = require('../server'); const allsettings = require('./settings'); diff --git a/src/_h5ai/public/js/lib/core/resource.js b/src/_h5ai/public/js/lib/core/resource.js index 27806144..6b5a7adc 100644 --- a/src/_h5ai/public/js/lib/core/resource.js +++ b/src/_h5ai/public/js/lib/core/resource.js @@ -1,4 +1,4 @@ -const {includes} = require('../lo'); +const {includes} = require('../util'); const config = require('../config'); const settings = require('./settings'); diff --git a/src/_h5ai/public/js/lib/core/types.js b/src/_h5ai/public/js/lib/core/types.js index c9798200..5026789c 100644 --- a/src/_h5ai/public/js/lib/core/types.js +++ b/src/_h5ai/public/js/lib/core/types.js @@ -1,4 +1,4 @@ -const {each, map} = require('../lo'); +const {each, map} = require('../util'); const config = require('../config'); const reEndsWithSlash = /\/$/; diff --git a/src/_h5ai/public/js/lib/ext/contextmenu.js b/src/_h5ai/public/js/lib/ext/contextmenu.js index 92ebb897..11c8288b 100644 --- a/src/_h5ai/public/js/lib/ext/contextmenu.js +++ b/src/_h5ai/public/js/lib/ext/contextmenu.js @@ -1,4 +1,4 @@ -const {each} = require('../lo'); +const {each} = require('../util'); const {win, jq} = require('../globals'); const resource = require('../core/resource'); const allsettings = require('../core/settings'); diff --git a/src/_h5ai/public/js/lib/ext/crumb.js b/src/_h5ai/public/js/lib/ext/crumb.js index f928cf1a..cedb8886 100644 --- a/src/_h5ai/public/js/lib/ext/crumb.js +++ b/src/_h5ai/public/js/lib/ext/crumb.js @@ -1,5 +1,4 @@ -const {each} = require('../lo'); -const {dom} = require('../dom'); +const {each, dom} = require('../util'); const event = require('../core/event'); const location = require('../core/location'); const resource = require('../core/resource'); diff --git a/src/_h5ai/public/js/lib/ext/download.js b/src/_h5ai/public/js/lib/ext/download.js index 72e29899..0f014d96 100644 --- a/src/_h5ai/public/js/lib/ext/download.js +++ b/src/_h5ai/public/js/lib/ext/download.js @@ -1,4 +1,4 @@ -const {each} = require('../lo'); +const {each} = require('../util'); const {jq} = require('../globals'); const server = require('../server'); const event = require('../core/event'); diff --git a/src/_h5ai/public/js/lib/ext/filter.js b/src/_h5ai/public/js/lib/ext/filter.js index 95ff0ed3..dcb32086 100644 --- a/src/_h5ai/public/js/lib/ext/filter.js +++ b/src/_h5ai/public/js/lib/ext/filter.js @@ -1,10 +1,8 @@ -const {filter, debounce} = require('../lo'); -const {dom} = require('../dom'); +const {filter, debounce, parsePattern, dom} = require('../util'); const event = require('../core/event'); const location = require('../core/location'); const resource = require('../core/resource'); const allsettings = require('../core/settings'); -const util = require('../core/util'); const view = require('../view/view'); @@ -50,7 +48,7 @@ const update = () => { if (inputIsVisible) { $filter.addCls('active'); $input[0].focus(); - filterItems(util.parsePattern($input.val(), settings.advanced)); + filterItems(parsePattern($input.val(), settings.advanced)); } else { filterItems(); $filter.rmCls('active'); diff --git a/src/_h5ai/public/js/lib/ext/google-analytics.js b/src/_h5ai/public/js/lib/ext/google-analytics.js index e6436a99..ac0b453d 100644 --- a/src/_h5ai/public/js/lib/ext/google-analytics.js +++ b/src/_h5ai/public/js/lib/ext/google-analytics.js @@ -1,4 +1,4 @@ -const {map} = require('../lo'); +const {map} = require('../util'); const {win} = require('../globals'); const event = require('../core/event'); const allsettings = require('../core/settings'); diff --git a/src/_h5ai/public/js/lib/ext/info.js b/src/_h5ai/public/js/lib/ext/info.js index 68363440..164db3a3 100644 --- a/src/_h5ai/public/js/lib/ext/info.js +++ b/src/_h5ai/public/js/lib/ext/info.js @@ -1,4 +1,4 @@ -const {isNum} = require('../lo'); +const {isNum} = require('../util'); const {win, jq, kjua} = require('../globals'); const event = require('../core/event'); const format = require('../core/format'); diff --git a/src/_h5ai/public/js/lib/ext/l10n.js b/src/_h5ai/public/js/lib/ext/l10n.js index 32fa5075..d5ee514f 100644 --- a/src/_h5ai/public/js/lib/ext/l10n.js +++ b/src/_h5ai/public/js/lib/ext/l10n.js @@ -1,4 +1,4 @@ -const {each, isStr} = require('../lo'); +const {each, isStr} = require('../util'); const {win, jq} = require('../globals'); const server = require('../server'); const event = require('../core/event'); diff --git a/src/_h5ai/public/js/lib/ext/piwik-analytics.js b/src/_h5ai/public/js/lib/ext/piwik-analytics.js index 9469ad7f..54e74c04 100644 --- a/src/_h5ai/public/js/lib/ext/piwik-analytics.js +++ b/src/_h5ai/public/js/lib/ext/piwik-analytics.js @@ -1,5 +1,5 @@ +const {dom, onLoad} = require('../util'); const {win} = require('../globals'); -const {dom, onLoad} = require('../dom'); const event = require('../core/event'); const allsettings = require('../core/settings'); diff --git a/src/_h5ai/public/js/lib/ext/preview-aud.js b/src/_h5ai/public/js/lib/ext/preview-aud.js index 5033838f..3878fa9d 100644 --- a/src/_h5ai/public/js/lib/ext/preview-aud.js +++ b/src/_h5ai/public/js/lib/ext/preview-aud.js @@ -1,4 +1,4 @@ -const {each, map, includes, compact} = require('../lo'); +const {each, map, includes, compact} = require('../util'); const {win, jq} = require('../globals'); const event = require('../core/event'); const format = require('../core/format'); diff --git a/src/_h5ai/public/js/lib/ext/preview-img.js b/src/_h5ai/public/js/lib/ext/preview-img.js index a33546d7..ff42ec8e 100644 --- a/src/_h5ai/public/js/lib/ext/preview-img.js +++ b/src/_h5ai/public/js/lib/ext/preview-img.js @@ -1,4 +1,4 @@ -const {each, map, includes, compact} = require('../lo'); +const {each, map, includes, compact} = require('../util'); const {win, jq} = require('../globals'); const server = require('../server'); const event = require('../core/event'); diff --git a/src/_h5ai/public/js/lib/ext/preview-txt.js b/src/_h5ai/public/js/lib/ext/preview-txt.js index 6261d419..97e44a70 100644 --- a/src/_h5ai/public/js/lib/ext/preview-txt.js +++ b/src/_h5ai/public/js/lib/ext/preview-txt.js @@ -1,4 +1,4 @@ -const {each, map, keys, includes, compact} = require('../lo'); +const {each, map, keys, includes, compact} = require('../util'); const {win, jq, marked, prism} = require('../globals'); const event = require('../core/event'); const allsettings = require('../core/settings'); diff --git a/src/_h5ai/public/js/lib/ext/preview-vid.js b/src/_h5ai/public/js/lib/ext/preview-vid.js index e04dedd7..9e13b705 100644 --- a/src/_h5ai/public/js/lib/ext/preview-vid.js +++ b/src/_h5ai/public/js/lib/ext/preview-vid.js @@ -1,4 +1,4 @@ -const {each, map, includes, compact} = require('../lo'); +const {each, map, includes, compact} = require('../util'); const {win, jq} = require('../globals'); const event = require('../core/event'); const allsettings = require('../core/settings'); diff --git a/src/_h5ai/public/js/lib/ext/preview.js b/src/_h5ai/public/js/lib/ext/preview.js index c18d5657..a4fb7b47 100644 --- a/src/_h5ai/public/js/lib/ext/preview.js +++ b/src/_h5ai/public/js/lib/ext/preview.js @@ -1,4 +1,4 @@ -const {each, isFn, isNum} = require('../lo'); +const {each, isFn, isNum} = require('../util'); const {win, jq} = require('../globals'); const resource = require('../core/resource'); const allsettings = require('../core/settings'); diff --git a/src/_h5ai/public/js/lib/ext/search.js b/src/_h5ai/public/js/lib/ext/search.js index d9287024..f79a6646 100644 --- a/src/_h5ai/public/js/lib/ext/search.js +++ b/src/_h5ai/public/js/lib/ext/search.js @@ -1,11 +1,9 @@ -const {map, debounce} = require('../lo'); -const {dom} = require('../dom'); +const {map, debounce, parsePattern, dom} = require('../util'); const server = require('../server'); const event = require('../core/event'); const location = require('../core/location'); const resource = require('../core/resource'); const allsettings = require('../core/settings'); -const util = require('../core/util'); const Item = require('../model/item'); const view = require('../view/view'); @@ -58,7 +56,7 @@ const update = () => { if (inputIsVisible) { $search.addCls('active'); $input[0].focus(); - search(util.parsePattern($input.val(), settings.advanced)); + search(parsePattern($input.val(), settings.advanced)); } else { search(); $search.rmCls('active'); diff --git a/src/_h5ai/public/js/lib/ext/select.js b/src/_h5ai/public/js/lib/ext/select.js index 7299eb50..bdb8e974 100644 --- a/src/_h5ai/public/js/lib/ext/select.js +++ b/src/_h5ai/public/js/lib/ext/select.js @@ -1,4 +1,4 @@ -const {each, map} = require('../lo'); +const {each, map} = require('../util'); const {win, jq} = require('../globals'); const event = require('../core/event'); const resource = require('../core/resource'); diff --git a/src/_h5ai/public/js/lib/ext/sort.js b/src/_h5ai/public/js/lib/ext/sort.js index 2cc549a4..b2ba4240 100644 --- a/src/_h5ai/public/js/lib/ext/sort.js +++ b/src/_h5ai/public/js/lib/ext/sort.js @@ -1,10 +1,8 @@ -const {each, toArray} = require('../lo'); -const {dom} = require('../dom'); +const {each, toArray, dom, regularCmp, naturalCmp} = require('../util'); const event = require('../core/event'); const resource = require('../core/resource'); const allsettings = require('../core/settings'); const store = require('../core/store'); -const util = require('../core/util'); const settings = Object.assign({ enabled: false, @@ -71,7 +69,7 @@ const cmpFn = (getValue, reverse, ignorecase, natural) => { } } - res = natural ? util.naturalCmpFn(val1, val2) : util.regularCmpFn(val1, val2); + res = natural ? naturalCmp(val1, val2) : regularCmp(val1, val2); return reverse ? -res : res; }; }; diff --git a/src/_h5ai/public/js/lib/ext/thumbnails.js b/src/_h5ai/public/js/lib/ext/thumbnails.js index 595ee2b1..68368e76 100644 --- a/src/_h5ai/public/js/lib/ext/thumbnails.js +++ b/src/_h5ai/public/js/lib/ext/thumbnails.js @@ -1,4 +1,4 @@ -const {each, map, includes} = require('../lo'); +const {each, map, includes} = require('../util'); const server = require('../server'); const event = require('../core/event'); const allsettings = require('../core/settings'); diff --git a/src/_h5ai/public/js/lib/ext/tree.js b/src/_h5ai/public/js/lib/ext/tree.js index 47f8d97d..d75c099f 100644 --- a/src/_h5ai/public/js/lib/ext/tree.js +++ b/src/_h5ai/public/js/lib/ext/tree.js @@ -1,11 +1,10 @@ -const {each} = require('../lo'); +const {each, regularCmp, naturalCmp} = require('../util'); const {jq} = require('../globals'); const event = require('../core/event'); const location = require('../core/location'); const resource = require('../core/resource'); const allsettings = require('../core/settings'); const store = require('../core/store'); -const util = require('../core/util'); const settings = Object.assign({ @@ -44,7 +43,7 @@ function cmpFn(item1, item2) { val2 = val2.toLowerCase(); } - return settings.natural ? util.naturalCmpFn(val1, val2) : util.regularCmpFn(val1, val2); + return settings.natural ? naturalCmp(val1, val2) : regularCmp(val1, val2); } function update(item) { diff --git a/src/_h5ai/public/js/lib/init.js b/src/_h5ai/public/js/lib/init.js index 2bbf6084..dd3054bb 100644 --- a/src/_h5ai/public/js/lib/init.js +++ b/src/_h5ai/public/js/lib/init.js @@ -1,4 +1,4 @@ -const {dom, onReady} = require('./dom'); +const {dom, onReady} = require('./util'); const config = require('./config'); const name = dom('script[data-module]').attr('data-module'); diff --git a/src/_h5ai/public/js/lib/main/info.js b/src/_h5ai/public/js/lib/main/info.js index 79fd1fe5..a98f07c1 100644 --- a/src/_h5ai/public/js/lib/main/info.js +++ b/src/_h5ai/public/js/lib/main/info.js @@ -1,5 +1,5 @@ +const {dom} = require('../util'); const {win} = require('../globals'); -const {dom} = require('../dom'); const config = require('../config'); const server = require('../server'); const resource = require('../core/resource'); diff --git a/src/_h5ai/public/js/lib/model/item.js b/src/_h5ai/public/js/lib/model/item.js index 544ac693..d6d6f088 100644 --- a/src/_h5ai/public/js/lib/model/item.js +++ b/src/_h5ai/public/js/lib/model/item.js @@ -1,4 +1,4 @@ -const {keys, each, filter, sortBy, isFn, isStr, isNum} = require('../lo'); +const {keys, each, filter, sortBy, isFn, isStr, isNum} = require('../util'); const server = require('../server'); const location = require('../core/location'); const settings = require('../core/settings'); diff --git a/src/_h5ai/public/js/lib/server.js b/src/_h5ai/public/js/lib/server.js index 824ee444..e3514fde 100644 --- a/src/_h5ai/public/js/lib/server.js +++ b/src/_h5ai/public/js/lib/server.js @@ -1,6 +1,5 @@ +const {each, dom} = require('./util'); const {win} = require('./globals'); -const {dom} = require('./dom'); -const {each} = require('./lo'); const XHR = win.XMLHttpRequest; const request = data => { diff --git a/src/_h5ai/public/js/lib/dom.js b/src/_h5ai/public/js/lib/util/dom.js similarity index 99% rename from src/_h5ai/public/js/lib/dom.js rename to src/_h5ai/public/js/lib/util/dom.js index adf15711..909751fc 100644 --- a/src/_h5ai/public/js/lib/dom.js +++ b/src/_h5ai/public/js/lib/util/dom.js @@ -1,4 +1,4 @@ -const {win} = require('./globals'); +const {win} = require('../globals'); const {each, filter, hasLength, is, isStr, map, isInstanceOf, toArray} = require('./lo'); const doc = win.document; diff --git a/src/_h5ai/public/js/lib/util/index.js b/src/_h5ai/public/js/lib/util/index.js new file mode 100644 index 00000000..90634b27 --- /dev/null +++ b/src/_h5ai/public/js/lib/util/index.js @@ -0,0 +1,6 @@ +module.exports = Object.assign({}, + require('./lo'), + require('./dom'), + require('./naturalCmp'), + require('./misc') +); diff --git a/src/_h5ai/public/js/lib/lo.js b/src/_h5ai/public/js/lib/util/lo.js similarity index 100% rename from src/_h5ai/public/js/lib/lo.js rename to src/_h5ai/public/js/lib/util/lo.js diff --git a/src/_h5ai/public/js/lib/util/misc.js b/src/_h5ai/public/js/lib/util/misc.js new file mode 100644 index 00000000..08c9dd54 --- /dev/null +++ b/src/_h5ai/public/js/lib/util/misc.js @@ -0,0 +1,24 @@ +const regularCmp = (x, y) => x < y ? -1 : x > y ? 1 : 0; + +const escapePattern = sequence => { + return sequence.replace(/[\-\[\]{}()*+?.,\\$\^|#\s]/g, '\\$&'); +}; + +const parsePattern = (sequence, advanced) => { + if (!advanced) { + return escapePattern(sequence); + } + + if (sequence.substr(0, 3) === 're:') { + return sequence.substr(3); + } + + return sequence.trim().split(/\s+/).map(part => { + return part.split('').map(char => escapePattern(char)).join('.*?'); + }).join('|'); +}; + +module.exports = { + regularCmp, + parsePattern +}; diff --git a/src/_h5ai/public/js/lib/core/util.js b/src/_h5ai/public/js/lib/util/naturalCmp.js similarity index 52% rename from src/_h5ai/public/js/lib/core/util.js rename to src/_h5ai/public/js/lib/util/naturalCmp.js index 60c2f7c8..491f40ee 100644 --- a/src/_h5ai/public/js/lib/core/util.js +++ b/src/_h5ai/public/js/lib/util/naturalCmp.js @@ -1,26 +1,29 @@ -const regularCmpFn = (x, y) => x < y ? -1 : x > y ? 1 : 0; - // Natural Sort algorithm for Javascript - Version 0.7 - Released under MIT license // Author: Jim Palmer (based on chunking idea from Dave Koelle) -// + // Modified to make it work with h5ai -const naturalCmpFn = (val1, val2) => { - const re = /(^-?[0-9]+(\.?[0-9]*)[df]?e?[0-9]?$|^0x[0-9a-f]+$|[0-9]+)/gi; - const sre = /(^[ ]*|[ ]*$)/g; - const dre = /(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/; - const hre = /^0x[0-9a-f]+$/i; - const ore = /^0/; + + +const re = /(^-?[0-9]+(\.?[0-9]*)[df]?e?[0-9]?$|^0x[0-9a-f]+$|[0-9]+)/gi; +const reStrip = /(^[ ]*|[ ]*$)/g; +const dre = /(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/; +const reHex = /^0x[0-9a-f]+$/i; +const reLeadingZero = /^0/; + +const naturalCmp = (val1, val2) => { // convert all to strings strip whitespace - const x = String(val1).replace(sre, ''); - const y = String(val2).replace(sre, ''); + const x = String(val1).replace(reStrip, ''); + const y = String(val2).replace(reStrip, ''); // chunk/tokenize const xN = x.replace(re, '\0$1\0').replace(/\0$/, '').replace(/^\0/, '').split('\0'); const yN = y.replace(re, '\0$1\0').replace(/\0$/, '').replace(/^\0/, '').split('\0'); // numeric, hex or date detection - const xD = parseInt(x.match(hre), 10) || xN.length !== 1 && x.match(dre) && Date.parse(x); - const yD = parseInt(y.match(hre), 10) || xD && y.match(dre) && Date.parse(y) || null; + const xD = parseInt(x.match(reHex), 10) || xN.length !== 1 && x.match(dre) && Date.parse(x); + const yD = parseInt(y.match(reHex), 10) || xD && y.match(dre) && Date.parse(y) || null; + let oFxNcL; let oFyNcL; + // first try and sort Hex codes or Dates if (yD) { if (xD < yD) { @@ -29,11 +32,12 @@ const naturalCmpFn = (val1, val2) => { return 1; } } + // natural sorting through split numeric strings and default strings for (let cLoc = 0, numS = Math.max(xN.length, yN.length); cLoc < numS; cLoc += 1) { // find floats not starting with '0', string or 0 if not defined (Clint Priest) - oFxNcL = !(xN[cLoc] || '').match(ore) && parseFloat(xN[cLoc]) || xN[cLoc] || 0; - oFyNcL = !(yN[cLoc] || '').match(ore) && parseFloat(yN[cLoc]) || yN[cLoc] || 0; + oFxNcL = !(xN[cLoc] || '').match(reLeadingZero) && parseFloat(xN[cLoc]) || xN[cLoc] || 0; + oFyNcL = !(yN[cLoc] || '').match(reLeadingZero) && parseFloat(yN[cLoc]) || yN[cLoc] || 0; // handle numeric vs string comparison - number < string - (Kyle Adams) if (isNaN(oFxNcL) !== isNaN(oFyNcL)) { return isNaN(oFxNcL) ? 1 : -1; @@ -49,31 +53,10 @@ const naturalCmpFn = (val1, val2) => { return 1; } } + return 0; }; -const escapePattern = sequence => { - return sequence.replace(/[\-\[\]{}()*+?.,\\$\^|#\s]/g, '\\$&'); -}; - -const parsePattern = (sequence, advanced) => { - if (!advanced) { - return escapePattern(sequence); - } - - if (sequence.substr(0, 3) === 're:') { - return sequence.substr(3); - } - - return sequence.trim().split(/\s+/).map(part => { - return part.split('').map(char => escapePattern(char)).join('.*?'); - }).join('|'); -}; - - module.exports = { - regularCmpFn, - naturalCmpFn, - escapePattern, - parsePattern + naturalCmp }; diff --git a/src/_h5ai/public/js/lib/view/base.js b/src/_h5ai/public/js/lib/view/base.js index cd6909e5..db958d46 100644 --- a/src/_h5ai/public/js/lib/view/base.js +++ b/src/_h5ai/public/js/lib/view/base.js @@ -1,4 +1,4 @@ -const {dom} = require('../dom'); +const {dom} = require('../util'); const rootSelector = 'body'; const tplTopbar = diff --git a/src/_h5ai/public/js/lib/view/notification.js b/src/_h5ai/public/js/lib/view/notification.js index 0247e673..52e4ecf0 100644 --- a/src/_h5ai/public/js/lib/view/notification.js +++ b/src/_h5ai/public/js/lib/view/notification.js @@ -1,4 +1,4 @@ -const {dom} = require('../dom'); +const {dom} = require('../util'); const base = require('./base'); const init = () => { diff --git a/src/_h5ai/public/js/lib/view/sidebar.js b/src/_h5ai/public/js/lib/view/sidebar.js index f008fd35..344f7461 100644 --- a/src/_h5ai/public/js/lib/view/sidebar.js +++ b/src/_h5ai/public/js/lib/view/sidebar.js @@ -1,4 +1,4 @@ -const {dom} = require('../dom'); +const {dom} = require('../util'); const resource = require('../core/resource'); const allsettings = require('../core/settings'); const store = require('../core/store'); diff --git a/src/_h5ai/public/js/lib/view/view.js b/src/_h5ai/public/js/lib/view/view.js index 7efed53c..556520c6 100644 --- a/src/_h5ai/public/js/lib/view/view.js +++ b/src/_h5ai/public/js/lib/view/view.js @@ -1,5 +1,4 @@ -const {each, map, includes, intersection} = require('../lo'); -const {dom} = require('../dom'); +const {each, map, includes, intersection, dom} = require('../util'); const event = require('../core/event'); const format = require('../core/format'); const location = require('../core/location'); diff --git a/src/_h5ai/public/js/lib/view/viewmode.js b/src/_h5ai/public/js/lib/view/viewmode.js index 295de210..ebcce354 100644 --- a/src/_h5ai/public/js/lib/view/viewmode.js +++ b/src/_h5ai/public/js/lib/view/viewmode.js @@ -1,5 +1,4 @@ -const {each} = require('../lo'); -const {dom} = require('../dom'); +const {each, dom} = require('../util'); const event = require('../core/event'); const resource = require('../core/resource'); const allsettings = require('../core/settings');