diff --git a/src/index.js b/src/index.js index 522244cf2..9e76d55d4 100644 --- a/src/index.js +++ b/src/index.js @@ -89,3 +89,4 @@ export UncontrolledDropdown from './UncontrolledDropdown'; export UncontrolledTooltip from './UncontrolledTooltip'; export Spinner from './Spinner'; export * as Util from './utils'; +export * as Polyfill from './polyfill' diff --git a/src/polyfill.js b/src/polyfill.js new file mode 100644 index 000000000..3c08c3e3e --- /dev/null +++ b/src/polyfill.js @@ -0,0 +1,20 @@ +(() => { + if ( typeof window.CustomEvent === 'function' ) return; + + const CustomEvent = (( event, params ) => { + params = params || { bubbles: false, cancelable: false, detail: null }; + var evt = document.createEvent( 'CustomEvent' ); + evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail ); + return evt; + }); + + window.CustomEvent = CustomEvent; +})(); + +(() => { + if ( typeof Object.values === 'function' ) return; + + const values = ( (O) => Object.keys(O).map((key) => O[key]) ); + + Object.values = values; +})();