@publidata/utils-custom-element
Version:
Polifill to allow using HTML custom elements in Safari
8 lines • 9.33 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["Utils-cutom-element"]=t():(e.Publidata=e.Publidata||{},e.Publidata["Utils-cutom-element"]=t())}(this,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t){
/*! (c) Andrea Giammarchi @webreflection ISC
* Inspired by the "ungap/custom-elements" package
* Here we simply use the package on IOS and in Safari
* as it cause bugs in other browsers when a custom element is modified during the page lyfecycle (virtual DOM for example)
**/
!function(){"use strict";var e=/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,t=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);if(e||t){var n=function(e,t){var n=function(e){for(var t=0,n=e.length;t<n;t++)r(e[t])},r=function(e){var t=e.target,n=e.attributeName,r=e.oldValue;t.attributeChangedCallback(n,r,t.getAttribute(n))};return function(o,a){var i=o.constructor.observedAttributes;return i&&e(a).then((function(){new t(n).observe(o,{attributes:!0,attributeOldValue:!0,attributeFilter:i});for(var e=0,a=i.length;e<a;e++)o.hasAttribute(i[e])&&r({target:o,attributeName:i[e],oldValue:null})})),o}},r="querySelectorAll",o="querySelectorAll",a=self,i=a.document,u=a.Element,l=a.MutationObserver,c=a.Set,f=a.WeakMap,s=function(e){return o in e},d=[].filter,v=function(e){var t=new f,n=function(n,r){var o;if(r)for(var a,i=function(e){return e.matches||e.webkitMatchesSelector||e.msMatchesSelector}(n),u=0,l=v.length;u<l;u++)i.call(n,a=v[u])&&(t.has(n)||t.set(n,new c),(o=t.get(n)).has(a)||(o.add(a),e.handle(n,r,a)));else t.has(n)&&(o=t.get(n),t.delete(n),o.forEach((function(t){e.handle(n,r,t)})))},a=function(e){for(var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],r=0,o=e.length;r<o;r++)n(e[r],t)},v=e.query,h=e.root||i,p=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:MutationObserver,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:["*"],a=function t(n,o,a,i,u,l){var c,f=be(n);try{for(f.s();!(c=f.n()).done;){var s=c.value;(l||r in s)&&(u?a.has(s)||(a.add(s),i.delete(s),e(s,u)):i.has(s)||(i.add(s),a.delete(s),e(s,u)),l||t(s[r](o),o,a,i,u,!0))}}catch(e){f.e(e)}finally{f.f()}},i=new n((function(e){if(o.length){var t,n=o.join(","),r=new Set,i=new Set,u=be(e);try{for(u.s();!(t=u.n()).done;){var l=t.value,c=l.addedNodes,f=l.removedNodes;a(f,n,r,i,!1,!1),a(c,n,r,i,!0,!1)}}catch(e){u.e(e)}finally{u.f()}}})),u=i.observe;return(i.observe=function(e){return u.call(i,e,{subtree:!0,childList:!0})})(t),i}(n,h,l,v),g=u.prototype.attachShadow;return g&&(u.prototype.attachShadow=function(e){var t=g.call(this,e);return p.observe(t),t}),v.length&&a(h[o](v)),{drop:function(e){for(var n=0,r=e.length;n<r;n++)t.delete(e[n])},flush:function(){for(var e=p.takeRecords(),t=0,n=e.length;t<n;t++)a(d.call(e[t].removedNodes,s),!1),a(d.call(e[t].addedNodes,s),!0)},observer:p,parse:a}},h=self,p=h.document,g=h.Map,y=h.MutationObserver,b=h.Object,m=h.Set,w=h.WeakMap,S=h.Element,E=h.HTMLElement,O=h.Node,M=h.Error,A=h.TypeError,P=h.Reflect,j=b.defineProperty,x=b.keys,T=b.getOwnPropertyNames,N=b.setPrototypeOf,_=!self.customElements,C=function(e){for(var t=x(e),n=[],r=t.length,o=0;o<r;o++)n[o]=e[t[o]],delete e[t[o]];return function(){for(var o=0;o<r;o++)e[t[o]]=n[o]}};if(_){var q=function(){var e=this.constructor;if(!D.has(e))throw new A("Illegal constructor");var t=D.get(e);if(R)return W(R,t);var n=I.call(p,t);return W(N(n,e.prototype),t)},I=p.createElement,D=new g,L=new g,k=new g,H=new g,$=[],U=v({query:$,handle:function(e,t,n){var r=k.get(n);if(t&&!r.isPrototypeOf(e)){var o=C(e);R=N(e,r);try{new r.constructor}finally{R=null,o()}}var a="".concat(t?"":"dis","connectedCallback");a in r&&e[a]()}}).parse,R=null,V=function(e){if(!L.has(e)){var t,n=new Promise((function(e){t=e}));L.set(e,{$:n,_:t})}return L.get(e).$},W=n(V,y);j(self,"customElements",{configurable:!0,value:{define:function(e,t){if(H.has(e))throw new M('the name "'.concat(e,'" has already been used with this registry'));D.set(t,e),k.set(e,t.prototype),H.set(e,t),$.push(e),V(e).then((function(){U(p.querySelectorAll(e))})),L.get(e)._(t)},get:function(e){return H.get(e)},whenDefined:V}}),j(q.prototype=E.prototype,"constructor",{value:q}),j(self,"HTMLElement",{configurable:!0,value:q}),j(p,"createElement",{configurable:!0,value:function(e,t){var n=t&&t.is,r=n?H.get(n):H.get(e);return r?new r:I.call(p,e)}}),"isConnected"in O.prototype||j(O.prototype,"isConnected",{configurable:!0,get:function(){return!(this.ownerDocument.compareDocumentPosition(this)&this.DOCUMENT_POSITION_DISCONNECTED)}})}else try{var F=function e(){return self.Reflect.construct(HTMLLIElement,[],e)};F.prototype=HTMLLIElement.prototype;var z="extends-li";self.customElements.define("extends-li",F,{extends:"li"}),_=p.createElement("li",{is:z}).outerHTML.indexOf(z)<0;var B=self.customElements,G=B.get,J=B.whenDefined;j(self.customElements,"whenDefined",{configurable:!0,value:function(e){var t=this;return J.call(this,e).then((function(n){return n||G.call(t,e)}))}})}catch(e){_=!_}if(_){var K=function(e){var t=ne.get(e);se(t.querySelectorAll(this),e.isConnected)},Q=self.customElements,X=p.createElement,Y=Q.define,Z=Q.get,ee=Q.upgrade,te=(P||{construct:function(e){return e.call(this)}}).construct,ne=new w,re=new m,oe=new g,ae=new g,ie=new g,ue=new g,le=[],ce=[],fe=function(e){return ue.get(e)||Z.call(Q,e)},se=v({query:ce,handle:function(e,t,n){var r=ie.get(n);if(t&&!r.isPrototypeOf(e)){var o=C(e);ge=N(e,r);try{new r.constructor}finally{ge=null,o()}}var a="".concat(t?"":"dis","connectedCallback");a in r&&e[a]()}}).parse,de=v({query:le,handle:function(e,t){ne.has(e)&&(t?re.add(e):re.delete(e),ce.length&&K.call(ce,e))}}).parse,ve=S.prototype.attachShadow;ve&&(S.prototype.attachShadow=function(e){var t=ve.call(this,e);return ne.set(this,t),t});var he=function(e){if(!ae.has(e)){var t,n=new Promise((function(e){t=e}));ae.set(e,{$:n,_:t})}return ae.get(e).$},pe=n(he,y),ge=null;T(self).filter((function(e){return/^HTML.*Element$/.test(e)})).forEach((function(e){var t=self[e];function n(){var e=this.constructor;if(!oe.has(e))throw new A("Illegal constructor");var n=oe.get(e),r=n.is,o=n.tag;if(r){if(ge)return pe(ge,r);var a=X.call(p,o);return a.setAttribute("is",r),pe(N(a,e.prototype),r)}return te.call(this,t,[],e)}j(n.prototype=t.prototype,"constructor",{value:n}),j(self,e,{value:n})})),j(p,"createElement",{configurable:!0,value:function(e,t){var n=t&&t.is;if(n){var r=ue.get(n);if(r&&oe.get(r).tag===e)return new r}var o=X.call(p,e);return n&&o.setAttribute("is",n),o}}),j(Q,"get",{configurable:!0,value:fe}),j(Q,"whenDefined",{configurable:!0,value:he}),j(Q,"upgrade",{configurable:!0,value:function(e){var t=e.getAttribute("is");if(t){var n=ue.get(t);if(n)return void pe(N(e,n.prototype),t)}ee.call(Q,e)}}),j(Q,"define",{configurable:!0,value:function(e,t,n){if(fe(e))throw new M("'".concat(e,"' has already been defined as a custom element"));var r,o=n&&n.extends;oe.set(t,o?{is:e,tag:o}:{is:"",tag:e}),o?(r="".concat(o,'[is="').concat(e,'"]'),ie.set(r,t.prototype),ue.set(e,t),ce.push(r)):(Y.apply(Q,arguments),le.push(r=e)),he(e).then((function(){o?(se(p.querySelectorAll(r)),re.forEach(K,[r])):de(p.querySelectorAll(r))})),ae.get(e)._(t)}})}}function ye(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function be(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return ye(e,t);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)?ye(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}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,i=!0,u=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){u=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(u)throw a}}}}
/*! (c) Andrea Giammarchi - ISC */}()}])}));