| function _typeof(obj) { | 
|   if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { | 
|     _typeof = function (obj) { | 
|       return typeof obj; | 
|     }; | 
|   } else { | 
|     _typeof = function (obj) { | 
|       return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; | 
|     }; | 
|   } | 
|   | 
|   return _typeof(obj); | 
| } | 
|   | 
| function _slicedToArray(arr, i) { | 
|   return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); | 
| } | 
|   | 
| function _toConsumableArray(arr) { | 
|   return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); | 
| } | 
|   | 
| function _arrayWithoutHoles(arr) { | 
|   if (Array.isArray(arr)) { | 
|     for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; | 
|   | 
|     return arr2; | 
|   } | 
| } | 
|   | 
| function _arrayWithHoles(arr) { | 
|   if (Array.isArray(arr)) return arr; | 
| } | 
|   | 
| function _iterableToArray(iter) { | 
|   if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); | 
| } | 
|   | 
| function _iterableToArrayLimit(arr, i) { | 
|   var _arr = []; | 
|   var _n = true; | 
|   var _d = false; | 
|   var _e = undefined; | 
|   | 
|   try { | 
|     for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { | 
|       _arr.push(_s.value); | 
|   | 
|       if (i && _arr.length === i) break; | 
|     } | 
|   } catch (err) { | 
|     _d = true; | 
|     _e = err; | 
|   } finally { | 
|     try { | 
|       if (!_n && _i["return"] != null) _i["return"](); | 
|     } finally { | 
|       if (_d) throw _e; | 
|     } | 
|   } | 
|   | 
|   return _arr; | 
| } | 
|   | 
| function _nonIterableSpread() { | 
|   throw new TypeError("Invalid attempt to spread non-iterable instance"); | 
| } | 
|   | 
| function _nonIterableRest() { | 
|   throw new TypeError("Invalid attempt to destructure non-iterable instance"); | 
| } | 
|   | 
| function convertToString(content, type) { | 
|   switch (_typeof(content)) { | 
|     case 'object': | 
|       { | 
|         if (!content) { | 
|           throw new TypeError('Cannot supply `null`'); | 
|         } | 
|   | 
|         switch (content.nodeType) { | 
|           case 1: | 
|             { | 
|               // ELEMENT | 
|               return content.outerHTML; | 
|             } | 
|   | 
|           case 3: | 
|             { | 
|               // TEXT | 
|               return content.nodeValue; | 
|             } | 
|   | 
|           case 11: | 
|             { | 
|               // DOCUMENT_FRAGMENT_NODE | 
|               return _toConsumableArray(content.childNodes).reduce(function (s, node) { | 
|                 return s + convertToString(node, type); | 
|               }, ''); | 
|             } | 
|   | 
|           case undefined: | 
|             { | 
|               // Array of nodes, QueryResult objects | 
|               // if (Array.isArray(content)) { | 
|               if (typeof content.reduce === 'function') { | 
|                 return content.reduce(function (s, node) { | 
|                   return s + convertToString(node, type); | 
|                 }, ''); | 
|               } | 
|             } | 
|         } | 
|   | 
|         return; | 
|       } | 
|   | 
|     case 'string': | 
|       { | 
|         return content; | 
|       } | 
|   | 
|     default: | 
|       throw new TypeError('Bad content for ' + type + '; type: ' + _typeof(content)); | 
|   } | 
| } | 
|   | 
| function convertToDOM(content, type, avoidClone) { | 
|   switch (_typeof(content)) { | 
|     case 'object': | 
|       { | 
|         if (!content) { | 
|           throw new TypeError('Cannot supply `null`'); | 
|         } | 
|   | 
|         if ([1, // ELEMENT | 
|         3, // TEXT | 
|         11 // Document fragment | 
|         ].includes(content.nodeType)) { | 
|           return avoidClone ? content : content.cloneNode(true); | 
|         } | 
|   | 
|         if (typeof content.reduce !== 'function') { | 
|           throw new TypeError('Unrecognized type of object for conversion to DOM'); | 
|         } // Array of nodes, QueryResult objects | 
|   | 
|   | 
|         return avoidClone ? content : content.map(function (node) { | 
|           if (!node || !node.cloneNode) { | 
|             // Allows for arrays of HTML strings | 
|             return convertToDOM(node, type, false); | 
|           } | 
|   | 
|           return node.cloneNode(true); | 
|         }); | 
|       } | 
|   | 
|     case 'string': | 
|       { | 
|         var div = document.createElement('div'); | 
|         div.innerHTML = content; | 
|         return div.firstElementChild || div.firstChild; | 
|       } | 
|   | 
|     default: | 
|       throw new TypeError('Bad content for ' + type + '; type: ' + _typeof(content)); | 
|   } | 
| } | 
|   | 
| function insert(type) { | 
|   return function () { | 
|     var _this = this; | 
|   | 
|     for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { | 
|       args[_key] = arguments[_key]; | 
|     } | 
|   | 
|     var cbOrContent = args[0]; | 
|   | 
|     switch (_typeof(cbOrContent)) { | 
|       case 'function': | 
|         { | 
|           this.forEach(function (node, i) { | 
|             var ret = cbOrContent.call(_this, i, node.textContent); | 
|             node[type](ret); | 
|           }); | 
|           break; | 
|         } | 
|   | 
|       default: | 
|         { | 
|           this.forEach(function (node, i, arr) { | 
|             node[type].apply(node, _toConsumableArray(args.flatMap(function (content) { | 
|               return convertToDOM(content, type, i === arr.length - 1); | 
|             }))); | 
|           }); | 
|           break; | 
|         } | 
|     } | 
|   | 
|     return this; | 
|   }; | 
| } | 
|   | 
| function insertText(type) { | 
|   return function (cbOrContent) { | 
|     var _this2 = this; | 
|   | 
|     switch (_typeof(cbOrContent)) { | 
|       case 'function': | 
|         { | 
|           this.forEach(function (node, i) { | 
|             var ret = cbOrContent.call(_this2, i, node[type]); | 
|             node[type] = convertToString(ret, type); | 
|           }); | 
|           break; | 
|         } | 
|   | 
|       default: | 
|         { | 
|           this.forEach(function (node) { | 
|             node[type] = convertToString(cbOrContent, type); | 
|           }); | 
|           break; | 
|         } | 
|     } | 
|   | 
|     return this; | 
|   }; | 
| } | 
|   | 
| var after = insert('after'); | 
| var before = insert('before'); | 
| var append = insert('append'); | 
| var prepend = insert('prepend'); | 
| var html = insertText('innerHTML'); | 
| var text = insertText('textContent'); | 
| /* | 
| // Todo: | 
| export const val = function (valueOrFunc) { | 
|   | 
| }; | 
| */ | 
| // Given that these types require a selector engine and | 
| // in order to avoid the absence of optimization of `document.querySelectorAll` | 
| // for `:first-child` and different behavior in different contexts, | 
| // and to avoid making a mutual dependency with query-result, | 
| // exports of this type accept a QueryResult instance; | 
| // if selected without a second argument, we do default to | 
| //  `document.querySelectorAll`, however. | 
|   | 
| var insertTo = function insertTo(method) { | 
|   var $ = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function (sel) { | 
|     return _toConsumableArray(document.querySelectorAll(sel)); | 
|   }; | 
|   var type = { | 
|     appendTo: 'append', | 
|     prependTo: 'prepend', | 
|     insertAfter: 'after', | 
|     insertBefore: 'before' | 
|   }[method] || 'append'; | 
|   return function (target) { | 
|     var toType = type + 'To'; | 
|     this.forEach(function (node, i, arr) { | 
|       if (typeof target === 'string' && target.charAt(0) !== '<') { | 
|         target = $(target); | 
|       } | 
|   | 
|       target = Array.isArray(target) ? target : [target]; | 
|       node[type].apply(node, _toConsumableArray(target.flatMap(function (content) { | 
|         return convertToDOM(content, toType, i === arr.length - 1); | 
|       }))); | 
|     }); | 
|     return this; | 
|   }; | 
| }; // Todo: optional `withDataAndEvents` and `deepWithDataAndEvents` arguments? | 
|   | 
| var clone = function clone() { | 
|   return this.map(function (node) { | 
|     // Still a QueryResult with such a map | 
|     return node.cloneNode(true); | 
|   }); | 
| }; | 
| var empty = function empty() { | 
|   this.forEach(function (node) { | 
|     node.textContent = ''; | 
|   }); | 
| }; | 
| var remove = function remove(selector) { | 
|   if (selector) { | 
|     this.forEach(function (node) { | 
|       if (node.matches(selector)) { | 
|         // Todo: Use query-result instead? | 
|         node.remove(); | 
|       } | 
|     }); | 
|   } else { | 
|     this.forEach(function (node) { | 
|       node.remove(); | 
|     }); | 
|   } | 
|   | 
|   return this; | 
| }; | 
| /* | 
| // Todo: | 
| export const detach = function (selector) { | 
|   // Should preserve attached data | 
|   return remove(selector); | 
| }; | 
| */ | 
|   | 
| var attr = function attr(attributeNameOrAtts, valueOrCb) { | 
|   var _this3 = this; | 
|   | 
|   if (valueOrCb === undefined) { | 
|     switch (_typeof(attributeNameOrAtts)) { | 
|       case 'string': | 
|         { | 
|           return this[0].hasAttribute(attributeNameOrAtts) ? this[0].getAttribute(attributeNameOrAtts) : undefined; | 
|         } | 
|   | 
|       case 'object': | 
|         { | 
|           if (attributeNameOrAtts) { | 
|             this.forEach(function (node, i) { | 
|               Object.entries(attributeNameOrAtts).forEach(function (_ref) { | 
|                 var _ref2 = _slicedToArray(_ref, 2), | 
|                     att = _ref2[0], | 
|                     val = _ref2[1]; | 
|   | 
|                 node.setAttribute(att, val); | 
|               }); | 
|             }); | 
|             return this; | 
|           } | 
|         } | 
|       // Fallthrough | 
|   | 
|       default: | 
|         { | 
|           throw new TypeError('Unexpected type for attribute name: ' + _typeof(attributeNameOrAtts)); | 
|         } | 
|     } | 
|   } | 
|   | 
|   switch (_typeof(valueOrCb)) { | 
|     case 'function': | 
|       { | 
|         this.forEach(function (node, i) { | 
|           var ret = valueOrCb.call(_this3, i, node.getAttribute(valueOrCb)); | 
|   | 
|           if (ret === null) { | 
|             node.removeAttribute(attributeNameOrAtts); | 
|           } else { | 
|             node.setAttribute(attributeNameOrAtts, ret); | 
|           } | 
|         }); | 
|         break; | 
|       } | 
|   | 
|     case 'string': | 
|       { | 
|         this.forEach(function (node, i) { | 
|           node.setAttribute(attributeNameOrAtts, valueOrCb); | 
|         }); | 
|         break; | 
|       } | 
|   | 
|     case 'object': | 
|       { | 
|         if (!valueOrCb) { | 
|           // `null` | 
|           return removeAttr.call(this, attributeNameOrAtts); | 
|         } | 
|       } | 
|     // Fallthrough | 
|   | 
|     default: | 
|       { | 
|         throw new TypeError('Unexpected type for attribute name: ' + _typeof(attributeNameOrAtts)); | 
|       } | 
|   } | 
|   | 
|   return this; | 
| }; | 
| var removeAttr = function removeAttr(attributeName) { | 
|   if (typeof attributeName !== 'string') { | 
|     throw new TypeError('Unexpected type for attribute name: ' + _typeof(attributeName)); | 
|   } | 
|   | 
|   this.forEach(function (node) { | 
|     node.removeAttribute(attributeName); | 
|   }); | 
| }; | 
|   | 
| function classAttManipulation(type) { | 
|   return function (cbOrContent) { | 
|     var _this4 = this; | 
|   | 
|     switch (_typeof(cbOrContent)) { | 
|       case 'function': | 
|         { | 
|           this.forEach(function (node, i) { | 
|             var _node$classList; | 
|   | 
|             var ret = cbOrContent.call(_this4, i, node.className); | 
|   | 
|             (_node$classList = node.classList)[type].apply(_node$classList, _toConsumableArray(ret.split(' '))); | 
|           }); | 
|           break; | 
|         } | 
|   | 
|       default: | 
|         { | 
|           if (type === 'remove' && !cbOrContent) { | 
|             this.forEach(function (node) { | 
|               node.className = ''; | 
|             }); | 
|             break; | 
|           } | 
|   | 
|           this.forEach(function (node) { | 
|             var _node$classList2; | 
|   | 
|             (_node$classList2 = node.classList)[type].apply(_node$classList2, _toConsumableArray(cbOrContent.split(' '))); | 
|           }); | 
|           break; | 
|         } | 
|     } | 
|   | 
|     return this; | 
|   }; | 
| } | 
|   | 
| var addClass = classAttManipulation('add'); | 
| var removeClass = classAttManipulation('remove'); | 
| var hasClass = function hasClass(className) { | 
|   return this.some(function (node) { | 
|     return node.classList.contains(className); | 
|   }); | 
| }; | 
| var toggleClass = function toggleClass(classNameOrCb, state) { | 
|   var _this5 = this; | 
|   | 
|   switch (typeof cbOrContent === "undefined" ? "undefined" : _typeof(cbOrContent)) { | 
|     case 'function': | 
|       { | 
|         if (typeof state === 'boolean') { | 
|           this.forEach(function (node, i) { | 
|             var _node$classList3; | 
|   | 
|             var ret = classNameOrCb.call(_this5, i, node.className, state); | 
|   | 
|             (_node$classList3 = node.classList).toggle.apply(_node$classList3, _toConsumableArray(ret.split(' ')).concat([state])); | 
|           }); | 
|         } else { | 
|           this.forEach(function (node, i) { | 
|             var _node$classList4; | 
|   | 
|             var ret = classNameOrCb.call(_this5, i, node.className, state); | 
|   | 
|             (_node$classList4 = node.classList).toggle.apply(_node$classList4, _toConsumableArray(ret.split(' '))); | 
|           }); | 
|         } | 
|   | 
|         break; | 
|       } | 
|   | 
|     case 'string': | 
|       { | 
|         if (typeof state === 'boolean') { | 
|           this.forEach(function (node) { | 
|             var _node$classList5; | 
|   | 
|             (_node$classList5 = node.classList).toggle.apply(_node$classList5, _toConsumableArray(classNameOrCb.split(' ')).concat([state])); | 
|           }); | 
|         } else { | 
|           this.forEach(function (node) { | 
|             var _node$classList6; | 
|   | 
|             (_node$classList6 = node.classList).toggle.apply(_node$classList6, _toConsumableArray(classNameOrCb.split(' '))); | 
|           }); | 
|         } | 
|   | 
|         break; | 
|       } | 
|   } | 
| }; | 
| var methods = { | 
|   after: after, | 
|   before: before, | 
|   append: append, | 
|   prepend: prepend, | 
|   html: html, | 
|   text: text, | 
|   clone: clone, | 
|   empty: empty, | 
|   remove: remove, | 
|   // detach | 
|   attr: attr, | 
|   removeAttr: removeAttr, | 
|   addClass: addClass, | 
|   hasClass: hasClass, | 
|   removeClass: removeClass, | 
|   toggleClass: toggleClass | 
| }; | 
|   | 
| var manipulation = function manipulation($, jml) { | 
|   ['after', 'before', 'append', 'prepend', 'html', 'text', 'clone', 'empty', 'remove', // 'detach' | 
|   'attr', 'removeAttr', 'addClass', 'hasClass', 'removeClass', 'toggleClass'].forEach(function (method) { | 
|     $.extend(method, methods[method]); | 
|   }); | 
|   ['appendTo', 'prependTo', 'insertAfter', 'insertBefore'].forEach(function (method) { | 
|     $.extend(method, insertTo(method, $)); | 
|   }); | 
|   | 
|   if (jml) { | 
|     $.extend('jml', function () { | 
|       var _this6 = this; | 
|   | 
|       for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { | 
|         args[_key2] = arguments[_key2]; | 
|       } | 
|   | 
|       this.forEach(function (node) { | 
|         while (node.hasChildNodes()) { | 
|           node.firstChild.remove(); | 
|         } | 
|   | 
|         var n = jml.apply(void 0, args); | 
|         return append.call(_this6, n); | 
|       }); | 
|     }); | 
|   } | 
|   | 
|   return $; | 
| }; | 
|   | 
| export { after, before, append, prepend, html, text, insertTo, clone, empty, remove, attr, removeAttr, addClass, removeClass, hasClass, toggleClass, manipulation }; |