From cc7c6cde47f02a57b9a76c51b9a930d05d9dba11 Mon Sep 17 00:00:00 2001 From: Nathan Reese Date: Fri, 10 Aug 2018 17:20:04 -0600 Subject: [PATCH] add polyfill for ChildNode remove (#21797) (#21895) * add polyfill for ChildNode remove * call polyfill function * add files as suggested by jbudz * remove checks around polyfill * just use polyfill that mozilla recommends * add MIT license to file * suffix file with polyfill, update copyright and link to repo * update notice.txt --- NOTICE.txt | 27 ++++++++ .../tests_bundle/tests_entry_template.js | 1 + src/ui/ui_bundles/app_entry_template.js | 1 + webpackShims/childnode-remove-polyfill.js | 65 +++++++++++++++++++ 4 files changed, 94 insertions(+) create mode 100644 webpackShims/childnode-remove-polyfill.js diff --git a/NOTICE.txt b/NOTICE.txt index 3a530b5323b4f..facd56a646f60 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -103,6 +103,33 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +--- +This product bundles childnode-remove which is available under a +"MIT" license. + +The MIT License (MIT) + +Copyright (c) 2016-present, jszhou +https://github.com/jserz/js_piece + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + --- This product bundles geohash.js which is available under a "MIT" license. For details, see src/ui/public/utils/decode_geo_hash.js. diff --git a/src/core_plugins/tests_bundle/tests_entry_template.js b/src/core_plugins/tests_bundle/tests_entry_template.js index ad2c5b8179241..f74956394aa6d 100644 --- a/src/core_plugins/tests_bundle/tests_entry_template.js +++ b/src/core_plugins/tests_bundle/tests_entry_template.js @@ -32,6 +32,7 @@ import 'babel-polyfill'; import 'custom-event-polyfill'; import 'whatwg-fetch'; import 'abortcontroller-polyfill'; +import 'childnode-remove-polyfill'; import { CoreSystem } from '__kibanaCore__' diff --git a/src/ui/ui_bundles/app_entry_template.js b/src/ui/ui_bundles/app_entry_template.js index 758f73bf10ec7..764e70eaa10d0 100644 --- a/src/ui/ui_bundles/app_entry_template.js +++ b/src/ui/ui_bundles/app_entry_template.js @@ -31,6 +31,7 @@ import 'babel-polyfill'; import 'custom-event-polyfill'; import 'whatwg-fetch'; import 'abortcontroller-polyfill'; +import 'childnode-remove-polyfill'; import { CoreSystem } from '__kibanaCore__' diff --git a/webpackShims/childnode-remove-polyfill.js b/webpackShims/childnode-remove-polyfill.js new file mode 100644 index 0000000000000..26c21d1674b07 --- /dev/null +++ b/webpackShims/childnode-remove-polyfill.js @@ -0,0 +1,65 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/* @notice + * This product bundles childnode-remove which is available under a + * "MIT" license. + * + * The MIT License (MIT) + * + * Copyright (c) 2016-present, jszhou + * https://github.com/jserz/js_piece + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +/* eslint-disable */ + +(function (arr) { + arr.forEach(function (item) { + if (item.hasOwnProperty('remove')) { + return; + } + Object.defineProperty(item, 'remove', { + configurable: true, + enumerable: true, + writable: true, + value: function remove() { + if (this.parentNode !== null) + this.parentNode.removeChild(this); + } + }); + }); +})([Element.prototype, CharacterData.prototype, DocumentType.prototype]);