@micropackage/responsive-embeds
Version:
Makes any embed responsive, no markup changes required.
1 lines • 4 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.ResponsiveEmbeds=t():e.ResponsiveEmbeds=t()}(self,(function(){return(()=>{var e={214:()=>{window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=function(e,t){t=t||window;for(var r=0;r<this.length;r++)e.call(t,this[r],r,this)})}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function e(e,r){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,r){if(e){if("string"==typeof e)return t(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?t(e,r):void 0}}(e))||r&&e&&"number"==typeof e.length){n&&(e=n);var o=0,i=function(){};return{s:i,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,c=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return c=e.done,e},e:function(e){s=!0,a=e},f:function(){try{c||null==n.return||n.return()}finally{if(s)throw a}}}}function t(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}r.r(n),r.d(n,{default:()=>c}),r(214);const c=function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={watch:!1,wrapClass:"responsive-embed-wrap"};r=i(i({},n),r);var o=!1,a=function(e){var t=e.clientHeight/e.clientWidth*100,n=document.createElement("div");n.style.position="relative",n.style.paddingTop="".concat(t,"%"),n.classList.add(r.wrapClass),e.style.position="absolute",e.style.width="100%",e.style.height="100%",e.style.top="0",e.parentNode.insertBefore(n,e),n.appendChild(e)};if("string"==typeof t){var c=t;t=document.querySelectorAll(c),!0===r.watch?r.watch=document.querySelector("body"):"string"==typeof r.watch&&(r.watch=document.querySelector(r.watch)),r.watch instanceof HTMLElement&&(o=new MutationObserver((function(t,n){var o,i=e(t);try{for(i.s();!(o=i.n()).done;){var s,l=e(o.value.addedNodes);try{for(l.s();!(s=l.n()).done;){var u=s.value;u.matches(c)&&(n.disconnect(),a(u),n.observe(r.watch,{childList:!0,subtree:!0}))}}catch(e){l.e(e)}finally{l.f()}}}catch(e){i.e(e)}finally{i.f()}})))}if(t instanceof NodeList)t.forEach((function(e){return a(e)}));else{if(!(t instanceof HTMLElement))throw new Error("responsiveEmbeds(): argument should be a string selector, an HTMLElement or NodeList instance.");a(t)}o&&o.observe(r.watch,{childList:!0,subtree:!0})}})(),n})()}));