diff --git a/app/assets/javascripts/spotlight/spotlight.esm.js b/app/assets/javascripts/spotlight/spotlight.esm.js
index 3c41c1653..ab7ef6d1e 100644
--- a/app/assets/javascripts/spotlight/spotlight.esm.js
+++ b/app/assets/javascripts/spotlight/spotlight.esm.js
@@ -5275,36 +5275,41 @@ class Users {
}
}
-(function ($){
+(function () {
SirTrevor.BlockMixins.Autocompleteable = {
mixinName: "Autocompleteable",
preload: true,
- initializeAutocompleteable: function() {
+ initializeAutocompleteable: function () {
this.on("onRender", this.addAutocompletetoSirTrevorForm);
- if (this['autocomplete_url'] === undefined) {
- this.autocomplete_url = function() { return $('form[data-autocomplete-url]').data('autocomplete-url'); };
+ if (this["autocomplete_url"] === undefined) {
+ this.autocomplete_url = function () {
+ const form = document.querySelector("form[data-autocomplete-url]");
+ return form ? form.dataset.autocompleteUrl : null
+ };
}
- if (this['autocomplete_fetch'] === undefined) {
+ if (this["autocomplete_fetch"] === undefined) {
this.autocomplete_fetch = this.fetchAutocompleteResults;
}
- if (this['transform_autocomplete_results'] === undefined) {
- this.transform_autocomplete_results = (val) => val;
+ if (this["transform_autocomplete_results"] === undefined) {
+ this.transform_autocomplete_results = val => val;
}
- if (this['highlight'] === undefined) {
- this.highlight = function(value) {
- if (!value) return '';
+ if (this["highlight"] === undefined) {
+ this.highlight = function (value) {
+ if (!value) return ""
const queryValue = this.getQueryValue().trim();
- return queryValue ? value.replace(new RegExp(queryValue, 'gi'), '$&') : value;
+ return queryValue
+ ? value.replace(new RegExp(queryValue, "gi"), "$&")
+ : value
};
}
- if (this['autocomplete_control'] === undefined) {
- this.autocomplete_control = function() {
+ if (this["autocomplete_control"] === undefined) {
+ this.autocomplete_control = function () {
const autocompleteID = this.autocompleteID();
return `
@@ -5312,71 +5317,77 @@ class Users {
- ` };
+ `
+ };
}
- if (this['autocomplete_element_template'] === undefined) {
- this.autocomplete_element_template = function(item) {
+ if (this["autocomplete_element_template"] === undefined) {
+ this.autocomplete_element_template = function (item) {
return `
${this.autocomplete_template(item)}`
};
}
},
- queryTokenizer: function(query) {
- return query.trim().toLowerCase().split(/\s+/).filter(Boolean);
+ queryTokenizer: function (query) {
+ return query.trim().toLowerCase().split(/\s+/).filter(Boolean)
},
- filterResults: function(data, query) {
+ filterResults: function (data, query) {
const queryStrings = this.queryTokenizer(query);
return data.filter(item => {
const lowerTitle = item.title.toLowerCase();
- return queryStrings.some(queryString => lowerTitle.includes(queryString));
- });
+ return queryStrings.some(queryString =>
+ lowerTitle.includes(queryString)
+ )
+ })
},
- fetchAutocompleteResults: async function(url) {
+ fetchAutocompleteResults: async function (url) {
const result = await fetchAutocompleteJSON(url);
const transformed = this.transform_autocomplete_results(result);
this.fetchedData = {};
- transformed.map(item => this.fetchedData[item.id] = item);
- return transformed.map(item => this.autocomplete_element_template(item)).join('');
+ transformed.map(item => (this.fetchedData[item.id] = item));
+ return transformed
+ .map(item => this.autocomplete_element_template(item))
+ .join("")
},
- fetchOnceAndFilterLocalResults: async function(url) {
+ fetchOnceAndFilterLocalResults: async function (url) {
if (this.fetchedData === undefined) {
await this.fetchAutocompleteResults(url);
}
- const query = url.searchParams.get('q');
+ const query = url.searchParams.get("q");
const data = Object.values(this.fetchedData);
const filteredData = query ? this.filterResults(data, query) : data;
- return filteredData.map(item => this.autocomplete_element_template(item)).join('');
+ return filteredData
+ .map(item => this.autocomplete_element_template(item))
+ .join("")
},
- autocompleteID: function() {
- return this.blockID + '-autocomplete';
+ autocompleteID: function () {
+ return this.blockID + "-autocomplete"
},
- getQueryValue: function() {
+ getQueryValue: function () {
const completer = this.inner.querySelector("auto-complete > input");
- return completer.value;
+ return completer.value
},
- addAutocompletetoSirTrevorForm: function() {
+ addAutocompletetoSirTrevorForm: function () {
const completer = this.inner.querySelector("auto-complete");
completer.fetchResult = this.autocomplete_fetch.bind(this);
- completer.addEventListener('auto-complete-change', (e) => {
+ completer.addEventListener("auto-complete-change", e => {
const data = this.fetchedData[e.relatedTarget.value];
if (e.relatedTarget.value && data) {
- e.value = e.relatedTarget.value = '';
+ e.value = e.relatedTarget.value = "";
this.createItemPanel({ ...data, display: "true" });
}
});
- },
- },
-
+ }
+ };
SirTrevor.Block.prototype.availableMixins.push("autocompleteable");
-})(jQuery);
+})();
(function ($){
SirTrevor.BlockMixins.Formable = {
diff --git a/app/assets/javascripts/spotlight/spotlight.esm.js.map b/app/assets/javascripts/spotlight/spotlight.esm.js.map
index cfd978194..af7b4496a 100644
--- a/app/assets/javascripts/spotlight/spotlight.esm.js.map
+++ b/app/assets/javascripts/spotlight/spotlight.esm.js.map
@@ -1 +1 @@
-{"version":3,"file":"spotlight.esm.js","sources":["../../../../vendor/assets/javascripts/tiny-slider.js","../../../javascript/spotlight/user/browse_group_categories.js","../../../javascript/spotlight/user/carousel.js","../../../javascript/spotlight/user/clear_form_button.js","../../../javascript/spotlight/user/zpr_links.js","../../../javascript/spotlight/user/index.js","../../../javascript/spotlight/admin/add_another.js","../../../javascript/spotlight/admin/add_new_button.js","../../../javascript/spotlight/admin/blacklight_configuration.js","../../../javascript/spotlight/admin/copy_email_addresses.js","../../../javascript/spotlight/admin/iiif.js","../../../javascript/spotlight/admin/add_image_selector.js","../../../javascript/spotlight/core.js","../../../javascript/spotlight/admin/crop.js","../../../javascript/spotlight/admin/croppable_modal.js","../../../javascript/spotlight/admin/croppable.js","../../../javascript/spotlight/admin/edit_in_place.js","../../../../vendor/assets/javascripts/parameterize.js","../../../javascript/spotlight/admin/exhibits.js","../../../javascript/spotlight/admin/form_observer.js","../../../javascript/spotlight/admin/locks.js","../../../javascript/spotlight/admin/multi_image_selector.js","../../../javascript/spotlight/admin/pages.js","../../../javascript/spotlight/admin/progress_monitor.js","../../../javascript/spotlight/admin/readonly_checkbox.js","../../../javascript/spotlight/admin/search_typeahead.js","../../../javascript/spotlight/admin/select_related_input.js","../../../javascript/spotlight/admin/spotlight_nestable.js","../../../javascript/spotlight/admin/tabs.js","../../../javascript/spotlight/admin/translation_progress.js","../../../javascript/spotlight/admin/visibility_toggle.js","../../../javascript/spotlight/admin/users.js","../../../javascript/spotlight/admin/block_mixins/autocompleteable.js","../../../javascript/spotlight/admin/block_mixins/formable.js","../../../javascript/spotlight/admin/block_mixins/plustextable.js","../../../javascript/spotlight/admin/blocks/block.js","../../../javascript/spotlight/admin/blocks/resources_block.js","../../../javascript/spotlight/admin/blocks/browse_block.js","../../../javascript/spotlight/admin/blocks/browse_group_categories_block.js","../../../javascript/spotlight/admin/blocks/iframe_block.js","../../../javascript/spotlight/admin/blocks/link_to_search_block.js","../../../javascript/spotlight/admin/blocks/oembed_block.js","../../../javascript/spotlight/admin/blocks/pages_block.js","../../../javascript/spotlight/admin/blocks/rule_block.js","../../../javascript/spotlight/admin/blocks/search_result_block.js","../../../javascript/spotlight/admin/blocks/solr_documents_base_block.js","../../../javascript/spotlight/admin/blocks/solr_documents_block.js","../../../javascript/spotlight/admin/blocks/solr_documents_carousel_block.js","../../../javascript/spotlight/admin/blocks/solr_documents_embed_block.js","../../../javascript/spotlight/admin/blocks/solr_documents_features_block.js","../../../javascript/spotlight/admin/blocks/solr_documents_grid_block.js","../../../javascript/spotlight/admin/blocks/uploaded_items_block.js","../../../javascript/spotlight/admin/sir-trevor/block_controls.js","../../../javascript/spotlight/admin/sir-trevor/block_limits.js","../../../javascript/spotlight/admin/sir-trevor/locales.js","../../../javascript/spotlight/admin/index.js","../../../javascript/spotlight/controllers/tag_selector_controller.js","../../../javascript/spotlight/controllers/index.js","../../../javascript/spotlight/index.js"],"sourcesContent":["// Includes an unreleased RTL support pull request: https://github.com/ganlanyuan/tiny-slider/pull/658\n// Includes \"export default tns\" at the end of the file for spotlight/user/browse_group_categories.js\nvar tns = (function (){\nvar win = window;\n\nvar raf = win.requestAnimationFrame\n || win.webkitRequestAnimationFrame\n || win.mozRequestAnimationFrame\n || win.msRequestAnimationFrame\n || function(cb) { return setTimeout(cb, 16); };\n\nvar win$1 = window;\n\nvar caf = win$1.cancelAnimationFrame\n || win$1.mozCancelAnimationFrame\n || function(id){ clearTimeout(id); };\n\nfunction extend() {\n var obj, name, copy,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length;\n\n for (; i < length; i++) {\n if ((obj = arguments[i]) !== null) {\n for (name in obj) {\n copy = obj[name];\n\n if (target === copy) {\n continue;\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n return target;\n}\n\nfunction checkStorageValue (value) {\n return ['true', 'false'].indexOf(value) >= 0 ? JSON.parse(value) : value;\n}\n\nfunction setLocalStorage(storage, key, value, access) {\n if (access) {\n try { storage.setItem(key, value); } catch (e) {}\n }\n return value;\n}\n\nfunction getSlideId() {\n var id = window.tnsId;\n window.tnsId = !id ? 1 : id + 1;\n \n return 'tns' + window.tnsId;\n}\n\nfunction getBody () {\n var doc = document,\n body = doc.body;\n\n if (!body) {\n body = doc.createElement('body');\n body.fake = true;\n }\n\n return body;\n}\n\nvar docElement = document.documentElement;\n\nfunction setFakeBody (body) {\n var docOverflow = '';\n if (body.fake) {\n docOverflow = docElement.style.overflow;\n //avoid crashing IE8, if background image is used\n body.style.background = '';\n //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible\n body.style.overflow = docElement.style.overflow = 'hidden';\n docElement.appendChild(body);\n }\n\n return docOverflow;\n}\n\nfunction resetFakeBody (body, docOverflow) {\n if (body.fake) {\n body.remove();\n docElement.style.overflow = docOverflow;\n // Trigger layout so kinetic scrolling isn't disabled in iOS6+\n // eslint-disable-next-line\n docElement.offsetHeight;\n }\n}\n\n// get css-calc \n\nfunction calc() {\n var doc = document, \n body = getBody(),\n docOverflow = setFakeBody(body),\n div = doc.createElement('div'), \n result = false;\n\n body.appendChild(div);\n try {\n var str = '(10px * 10)',\n vals = ['calc' + str, '-moz-calc' + str, '-webkit-calc' + str],\n val;\n for (var i = 0; i < 3; i++) {\n val = vals[i];\n div.style.width = val;\n if (div.offsetWidth === 100) { \n result = val.replace(str, ''); \n break;\n }\n }\n } catch (e) {}\n \n body.fake ? resetFakeBody(body, docOverflow) : div.remove();\n\n return result;\n}\n\n// get subpixel support value\n\nfunction percentageLayout() {\n // check subpixel layout supporting\n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n wrapper = doc.createElement('div'),\n outer = doc.createElement('div'),\n str = '',\n count = 70,\n perPage = 3,\n supported = false;\n\n wrapper.className = \"tns-t-subp2\";\n outer.className = \"tns-t-ct\";\n\n for (var i = 0; i < count; i++) {\n str += '';\n }\n\n outer.innerHTML = str;\n wrapper.appendChild(outer);\n body.appendChild(wrapper);\n\n supported = Math.abs(wrapper.getBoundingClientRect().left - outer.children[count - perPage].getBoundingClientRect().left) < 2;\n\n body.fake ? resetFakeBody(body, docOverflow) : wrapper.remove();\n\n return supported;\n}\n\nfunction mediaquerySupport () {\n if (window.matchMedia || window.msMatchMedia) {\n return true;\n }\n \n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n div = doc.createElement('div'),\n style = doc.createElement('style'),\n rule = '@media all and (min-width:1px){.tns-mq-test{position:absolute}}',\n position;\n\n style.type = 'text/css';\n div.className = 'tns-mq-test';\n\n body.appendChild(style);\n body.appendChild(div);\n\n if (style.styleSheet) {\n style.styleSheet.cssText = rule;\n } else {\n style.appendChild(doc.createTextNode(rule));\n }\n\n position = window.getComputedStyle ? window.getComputedStyle(div).position : div.currentStyle['position'];\n\n body.fake ? resetFakeBody(body, docOverflow) : div.remove();\n\n return position === \"absolute\";\n}\n\n// create and append style sheet\nfunction createStyleSheet (media, nonce) {\n // Create the