{"version":3,"sources":["jsdelivr-header.js","/npm/bootstrap-list-filter@0.3.4/bootstrap-list-filter.src.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,CCUA,SAAU,GACT,EAAE,GAAG,cAAgB,SAAS,EAAS,GAEtC,aAEA,IAGC,EAGA,EA4CkB,EAAM,EACpB,EAnDD,EAAO,KACV,EAAc,EAAE,MAChB,EAAW,EAAE,GAEb,EAAS,EA0JV,OArIA,EAAO,EAAE,OAAO,CACf,MAAO,IACP,UAAW,EACX,SAAS,EACT,eAAe,EACf,SAAU,QACV,aAAa,EACb,WAAY,KACZ,WAAY,+DACZ,WAAY,SAAS,GACpB,OA3BF,SAAc,EAAK,GAClB,OAAO,EAAI,QAAQ,qBAAqB,SAAU,EAAK,GACtD,OAAO,EAAK,IAAQ,EACrB,GACD,CAuBS,CAAK,EAAK,WAAY,EAC9B,EACA,UAAW,SAAS,GACnB,MAAO,sEACR,EACA,WAAY,WACX,MAAO,+FACR,EACA,aAAc,mBACd,aAAc,mBACd,OAAQ,mBACR,UAAW,KACX,WAjCD,SAA2B,EAAM,GAChC,EAAM,GAAO,EAAI,QAAQ,IAAI,OAAO,mBAAoB,KAAK,IAG7D,IAAI,EAAO,EAAE,GAAM,OAClB,EAAI,EAAK,QAAU,IAAM,GAG1B,OAFa,IAAI,OAAO,EAAI,EAAK,EAAK,cAAgB,GAAK,KAE1C,KAAM,EACxB,GAyBG,GAcH,EAAK,MAAQ,WACZ,EAAS,IAAI,IAAI,QAAQ,EAAK,SAC/B,EAEG,EAAE,WAAW,EAAK,cAEpB,EAAY,EAAE,EAAK,WAAW,KAAK,IAAO,OAE1C,EAAS,MAAO,GAChB,EAAS,QAAQ,eAAe,SAAS,gBAErC,EAAS,OAAO,GAAG,mBACtB,EAAU,IAAI,CAAC,IAAK,IAErB,EAAU,IAAI,CAAC,iBAAkB,SAEjC,EAAU,GAAG,QAAS,EAAK,QAG5B,EAAS,GAAG,EAAK,UA/BE,EA+BkB,SAAS,GAE7C,IAAI,EAAM,EAAE,MAAM,MAEf,EAAK,SACP,EAAS,EAAY,KAAK,EAAK,SAE7B,EAAK,YACP,EAAS,EAAO,KAAK,EAAK,YAE3B,IAAI,EAAW,EAAO,QAAO,WAC3B,OAAO,EAAK,WAAW,KAAK,EAAM,KAAM,EACzC,IACA,EAAc,EAAO,IAAI,GAEtB,EAAK,YACR,EAAW,EAAS,QAAQ,EAAK,QACjC,EAAc,EAAY,QAAQ,EAAK,QAAQ,QAGvC,KAAN,GAAY,EAAI,QAAU,EAAK,WAEjC,EAAS,OACT,EAAY,OACZ,EAAU,OAEmB,aAA1B,EAAE,KAAK,EAAK,aAEd,EAAS,OACT,EAAY,OAET,IAEC,EAAE,WAAW,EAAQ,OACvB,EAAQ,QACD,EAAE,WAAW,EAAQ,OAC5B,EAAQ,QAGV,EAAY,SAAS,EAAK,cAC1B,EAAU,EAAK,WAAW,KAAK,EAAM,GAAK,SAAS,GAMlD,GALA,EAAU,KACV,EAAS,OACT,EAAY,OACZ,EAAY,KAAK,IAAI,EAAK,cAAc,SAEpC,GAAsB,IAAd,EAAK,OAGhB,IAAI,IAAI,KAAK,EACZ,EAAG,EAAK,WAAW,KAAK,EAAM,EAAK,KAAM,SAAS,EAAK,cAAc,SAAS,QAH/E,EAAG,EAAK,UAAU,KAAK,EAAM,IAAO,SAAS,EAAK,cAAc,SAAS,GAK1E,EAAY,YAAY,EAAK,aAC9B,MAGe,EAAY,KAAK,IAAI,EAAK,cAAc,SAEnB,IAAlB,EAAS,QAC1B,EAAG,EAAK,UAAU,KAAK,EAAM,IAAO,SAAS,EAAK,cAAc,SAAS,MAM3E,EAAS,OACT,EAAY,OACZ,EAAU,OACV,EAAY,KAAK,IAAI,EAAK,cAAc,SAE1C,EAnGC,GAFwB,EAqGtB,EAAK,QAnGc,IACd,WACN,IAAI,EAAQ,KAAO,EAAO,UAC1B,aAAc,GACd,EAAY,YAAY,WACvB,EAAK,MAAO,EAAQ,MAAM,UAAU,MAAM,KAAM,GACjD,GAAG,EACJ,IA8FE,EAAK,aACP,EAAS,GAAG,QAAQ,SAAS,GAC5B,EAAK,OACN,IAEM,CACR,CAEA,CAtKD,CAsKG","file":"/npm/bootstrap-list-filter@0.3.4/bootstrap-list-filter.src.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/bootstrap-list-filter@0.3.4/bootstrap-list-filter.src.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/*\n* OPTIONS\n*\n* delay        *millisecond before apply filter*\n* minLength    *min string lentgh searched*\n* initial      *search only initial text (default: true)*\n* eventKey     *event digit (default: 'keyup')*\n* resetOnBlur  *auto reset selection*\n* sourceData   *function generate data source(receive: text, callback)*\n* sourceTmpl   *html template contains {title} placeholder*\n* sourceNode   *function builder DOM html fragment (default: sourceTmpl)*\n* emptyNode    *function builder for empty result*\n* itemEl       *item selector (default: .list-group-item)*,\n* itemChild    *sub item selector (default: .list-group-item)*,\n* itemFilter   *function for filter results(receive: text, item)*\n*/\n(function($) {\n\t$.fn.btsListFilter = function(inputEl, opts) {\n\n\t\t'use strict';\n\t\t\n\t\tvar self = this,\n\t\t\tsearchlist$ = $(this),\n\t\t\tinputEl$ = $(inputEl),\n\t\t\tcancelEl$,\n\t\t\titems$ = searchlist$,\n\t\t\tcallData,\n\t\t\tcallReq;\t//last callData execution\n\n\t\tfunction tmpl(str, data) {\n\t\t\treturn str.replace(/\\{ *([\\w_]+) *\\}/g, function (str, key) {\n\t\t\t\treturn data[key] || '';\n\t\t\t});\n\t\t}\n\n\t\tfunction defaultItemFilter(item, val) {\n\t\t\tval = val && val.replace(new RegExp(\"[({[^.$*+?\\\\\\]})]\",\"g\"),'');\n\t\t\t//sanitize regexp\n\n\t\t\tvar text = $(item).text(),\n\t\t\t\ti = opts.initial ? '^' : '',\n\t\t\t\tregSearch = new RegExp(i + val, opts.casesensitive ? '' : 'i');\n\n\t\t\treturn regSearch.test( text );\n\t\t}\n\t\t\n\t\topts = $.extend({\n\t\t\tdelay: 300,\n\t\t\tminLength: 1,\n\t\t\tinitial: true,\n\t\t\tcasesensitive: false,\n\t\t\teventKey: 'keyup',\n\t\t\tresetOnBlur: true,\n\t\t\tsourceData: null,\n\t\t\tsourceTmpl: '<a class=\"list-group-item\" href=\"#\"><span>{title}</span></a>',\n\t\t\tsourceNode: function(data) {\n\t\t\t\treturn tmpl(opts.sourceTmpl, data);\n\t\t\t},\n\t\t\temptyNode: function(data) {\n\t\t\t\treturn '<a class=\"list-group-item well\" href=\"#\"><span>No Results</span></a>';\n\t\t\t},\n\t\t\tcancelNode: function() {\n\t\t\t\treturn '<span class=\"btn glyphicon glyphicon-remove form-control-feedback\" aria-hidden=\"true\"></span>';\n\t\t\t},\n\t\t\tloadingClass: 'bts-loading-list',\n\t\t\titemClassTmp: 'bts-dynamic-item',\n\t\t\titemEl: '.list-group-item',\n\t\t\titemChild: null,\n\t\t\titemFilter: defaultItemFilter\n\t\t}, opts);\n\n\t\tfunction debouncer(func, timeout) {\n\t\t\tvar timeoutID;\n\t\t\ttimeout = timeout || 300;\n\t\t\treturn function () {\n\t\t\t\tvar scope = this , args = arguments;\n\t\t\t\tclearTimeout( timeoutID );\n\t\t\t\ttimeoutID = setTimeout( function () {\n\t\t\t\t\tfunc.apply( scope , Array.prototype.slice.call( args ) );\n\t\t\t\t}, timeout);\n\t\t\t};\n\t\t}\n\n\t\tself.reset = function() {\n\t\t\tinputEl$.val('').trigger(opts.eventKey);\n\t\t};\n\n\t\tif($.isFunction(opts.cancelNode)) {\n\n\t\t\tcancelEl$ = $(opts.cancelNode.call(self)).hide();\n\n\t\t\tinputEl$.after( cancelEl$ );\n\t\t\tinputEl$.parents('.form-group').addClass('has-feedback');\n\t\t\t\n\t\t\tif(!inputEl$.prev().is('.control-label'))\n\t\t\t\tcancelEl$.css({top: 0});\n\n\t\t\tcancelEl$.css({'pointer-events': 'auto'});\n\n\t\t\tcancelEl$.on('click', self.reset);\n\t\t}\n\n\t\tinputEl$.on(opts.eventKey, debouncer(function(e) {\n\t\t\t\n\t\t\tvar val = $(this).val();\n\n\t\t\tif(opts.itemEl)\n\t\t\t\titems$ = searchlist$.find(opts.itemEl);\n\n\t\t\tif(opts.itemChild)\n\t\t\t\titems$ = items$.find(opts.itemChild);\n\n\t\t\tvar contains = items$.filter(function(){\n\t\t\t\t\treturn opts.itemFilter.call(self, this, val);\n\t\t\t\t}),\n\t\t\t\tcontainsNot = items$.not(contains);\n\n\t\t\tif (opts.itemChild){\n\t\t\t\tcontains = contains.parents(opts.itemEl);\n\t\t\t\tcontainsNot = containsNot.parents(opts.itemEl).hide();\n\t\t\t}\n\n\t\t\tif(val!=='' && val.length >= opts.minLength)\n\t\t\t{\n\t\t\t\tcontains.show();\n\t\t\t\tcontainsNot.hide();\n\t\t\t\tcancelEl$.show();\n\n\t\t\t\tif($.type(opts.sourceData)==='function')\n\t\t\t\t{\n\t\t\t\t\tcontains.hide();\n\t\t\t\t\tcontainsNot.hide();\n\t\t\t\t\t\n\t\t\t\t\tif(callReq)\n\t\t\t\t\t{\n\t\t\t\t\t\tif($.isFunction(callReq.abort))\n\t\t\t\t\t\t\tcallReq.abort();\n\t\t\t\t\t\telse if($.isFunction(callReq.stop))\n\t\t\t\t\t\t\tcallReq.stop();\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tsearchlist$.addClass(opts.loadingClass);\n\t\t\t\t\tcallReq = opts.sourceData.call(self, val, function(data) {\n\t\t\t\t\t\tcallReq = null;\n\t\t\t\t\t\tcontains.hide();\n\t\t\t\t\t\tcontainsNot.hide();\n\t\t\t\t\t\tsearchlist$.find('.'+opts.itemClassTmp).remove();\n\n\t\t\t\t\t\tif(!data || data.length===0)\n\t\t\t\t\t\t\t$( opts.emptyNode.call(self, val) ).addClass(opts.itemClassTmp).appendTo(searchlist$);\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tfor(var i in data)\n\t\t\t\t\t\t\t\t$( opts.sourceNode.call(self, data[i]) ).addClass(opts.itemClassTmp).appendTo(searchlist$);\n\n\t\t\t\t\t\tsearchlist$.removeClass(opts.loadingClass);\n\t\t\t\t\t});\n\t\t\t\t} \n\t\t\t\telse {\n                    searchlist$.find('.'+opts.itemClassTmp).remove();\n                    \n                    if(contains.length===0)\n\t\t\t\t\t\t$( opts.emptyNode.call(self, val) ).addClass(opts.itemClassTmp).appendTo(searchlist$);\n\t\t\t\t}\n\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tcontains.show();\n\t\t\t\tcontainsNot.show();\n\t\t\t\tcancelEl$.hide();\n\t\t\t\tsearchlist$.find('.'+opts.itemClassTmp).remove();\n\t\t\t}\n\t\t}, opts.delay));\n\n\t\tif(opts.resetOnBlur)\n\t\t\tinputEl$.on('blur', function(e) {\n\t\t\t\tself.reset();\n\t\t\t});\n\n\t\treturn searchlist$;\n\t};\n\n})(jQuery);\n"]}