1(function (window, document) { 2 var namespace = window.EditorumUi = window.EditorumUi || {}; 3 var internals = namespace.__internals = namespace.__internals || {}; 4 5 function ready(callback) { 6 if (document.readyState === 'loading') { 7 document.addEventListener('DOMContentLoaded', callback); 8 return; 9 } 10 11 callback(); 12 } 13 14 function matches(element, selector) { 15 var matcher; 16 17 if (!element || element.nodeType !== 1) { 18 return false; 19 } 20 21 matcher = element.matches 22 || element.msMatchesSelector 23 || element.webkitMatchesSelector; 24 25 if (!matcher) { 26 return false; 27 } 28 29 return matcher.call(element, selector); 30 } 31 32 function closest(element, selector) { 33 var current = element; 34 35 while (current && current !== document) { 36 if (matches(current, selector)) { 37 return current; 38 } 39 40 current = current.parentNode; 41 } 42 43 return null; 44 } 45 46 function normalizeSelector(selector) { 47 if (typeof selector !== 'string') { 48 return selector; 49 } 50 51 return selector 52 .replace(/:checkbox\b/g, 'input[type="checkbox"]') 53 .replace(/:radio\b/g, 'input[type="radio"]'); 54 } 55 56 function warnInvalidSelector(selector, error) { 57 if (window.console && typeof window.console.warn === 'function') { 58 window.console.warn('EditorumUi: invalid selector "' + selector + '"', error); 59 } 60 } 61 62 function query(selector, root) { 63 var resolvedSelector = normalizeSelector(selector); 64 65 try { 66 return (root || document).querySelector(resolvedSelector); 67 } catch (error) { 68 warnInvalidSelector(selector, error); 69 return null; 70 } 71 } 72 73 function queryAll(selector, root) { 74 var resolvedSelector = normalizeSelector(selector); 75 76 try { 77 return Array.prototype.slice.call((root || document).querySelectorAll(resolvedSelector)); 78 } catch (error) { 79 warnInvalidSelector(selector, error); 80 return []; 81 } 82 } 83 84 function each(items, callback) { 85 var index; 86 87 for (index = 0; index < items.length; index += 1) { 88 callback(items[index], index); 89 } 90 } 91 92 function show(element, displayValue) { 93 if (!element) { 94 return; 95 } 96 97 element.hidden = false; 98 element.style.display = displayValue || ''; 99 100 if (window.getComputedStyle(element).display === 'none') { 101 element.style.display = displayValue || 'block'; 102 } 103 } 104 105 function hide(element) { 106 if (!element) { 107 return; 108 } 109 110 element.hidden = true; 111 element.style.display = 'none'; 112 } 113 114 function toggle(element, shouldShow, displayValue) { 115 if (shouldShow) { 116 show(element, displayValue); 117 return; 118 } 119 120 hide(element); 121 } 122 123 function dispatch(element, name, options) { 124 var settings = options || {}; 125 var event; 126 var jqEvent = null; 127 var jqResult = false;
128 var domResult; 129 130 if (!element) { 131 return { 132 prevented: false 133 }; 134 } 135 136 if (typeof window.CustomEvent === 'function') { 137 event = new window.CustomEvent(name, { 138 bubbles: settings.bubbles !== false, 139 cancelable: !!settings.cancelable, 140 detail: settings.detail || null 141 }); 142 } else { 143 event = document.createEvent('CustomEvent'); 144 event.initCustomEvent(name, settings.bubbles !== false, !!settings.cancelable, settings.detail || null); 145 } 146 147 if (settings.relatedTarget) { 148 try { 149 event.relatedTarget = settings.relatedTarget; 150 } catch (error) { 151 // Older browsers expose read-only event fields; ignore gracefully. 152 } 153 } 154 155 domResult = element.dispatchEvent(event); 156 157 return { 158 domEvent: event, 159 jqEvent: jqEvent, 160 prevented: domResult === false || jqResult 161 }; 162 } 163 164 internals.ready = ready; 165 internals.matches = matches; 166 internals.closest = closest; 167 internals.normalizeSelector = normalizeSelector; 168 internals.warnInvalidSelector = warnInvalidSelector; 169 internals.query = query; 170 internals.queryAll = queryAll; 171 internals.each = each; 172 internals.show = show; 173 internals.hide = hide; 174 internals.toggle = toggle; 175 internals.dispatch = dispatch; 176})(window, document);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.