UNPKG

@blueprintjs/core

Version:
48 lines (46 loc) 7.99 kB
/* * Copyright 2015 Palantir Technologies, Inc. All rights reserved. * Licensed under the BSD-3 License as modified (the “License”); you may obtain a copy * of the license at https://github.com/palantir/blueprint/blob/master/LICENSE * and https://github.com/palantir/blueprint/blob/master/PATENTS */ "use strict"; var utils_1 = require("./utils"); /** A collection of curated prop keys used across our Components which are not valid HTMLElement props. */ var INVALID_PROPS = [ "containerRef", "defaultIndeterminate", "elementRef", "iconName", "inputRef", "intent", "leftIconName", "onChildrenMount", "onRemove", "rightElement", "rightIconName", "text", ]; /** * Typically applied to HTMLElements to filter out blacklisted props. When applied to a Component, * can filter props from being passed down to the children. Can also filter by a combined list of * supplied prop keys and the blacklist (only appropriate for HTMLElements). * @param props The original props object to filter down. * @param {string[]} invalidProps If supplied, overwrites the default blacklist. * @param {boolean} shouldMerge If true, will merge supplied invalidProps and blacklist together. */ function removeNonHTMLProps(props, invalidProps, shouldMerge) { if (invalidProps === void 0) { invalidProps = INVALID_PROPS; } if (shouldMerge === void 0) { shouldMerge = false; } if (shouldMerge) { invalidProps = invalidProps.concat(INVALID_PROPS); } return invalidProps.reduce(function (prev, curr) { if (prev.hasOwnProperty(curr)) { delete prev[curr]; } return prev; }, utils_1.shallowClone(props)); } exports.removeNonHTMLProps = removeNonHTMLProps; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21tb24vcHJvcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7O0FBS0gsc0JBQTZCLFNBQVMsQ0FBQyxDQUFBO0FBdUV2QywwR0FBMEc7QUFDMUcsSUFBTSxhQUFhLEdBQUc7SUFDbEIsY0FBYztJQUNkLHNCQUFzQjtJQUN0QixZQUFZO0lBQ1osVUFBVTtJQUNWLFVBQVU7SUFDVixRQUFRO0lBQ1IsY0FBYztJQUNkLGlCQUFpQjtJQUNqQixVQUFVO0lBQ1YsY0FBYztJQUNkLGVBQWU7SUFDZixNQUFNO0NBQ1QsQ0FBQztBQUVGOzs7Ozs7O0dBT0c7QUFDSCw0QkFBbUQsS0FBUSxFQUFFLFlBQTRCLEVBQUUsV0FBbUI7SUFBakQsNEJBQTRCLEdBQTVCLDRCQUE0QjtJQUFFLDJCQUFtQixHQUFuQixtQkFBbUI7SUFDMUcsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNkLFlBQVksR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxVQUFDLElBQUksRUFBRSxJQUFJO1FBQ2xDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVCLE9BQVEsSUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9CLENBQUM7UUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ2hCLENBQUMsRUFBRSxvQkFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDNUIsQ0FBQztBQVhlLDBCQUFrQixxQkFXakMsQ0FBQSIsImZpbGUiOiJjb21tb24vcHJvcHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUgUGFsYW50aXIgVGVjaG5vbG9naWVzLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQlNELTMgTGljZW5zZSBhcyBtb2RpZmllZCAodGhlIOKAnExpY2Vuc2XigJ0pOyB5b3UgbWF5IG9idGFpbiBhIGNvcHlcbiAqIG9mIHRoZSBsaWNlbnNlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICogYW5kIGh0dHBzOi8vZ2l0aHViLmNvbS9wYWxhbnRpci9ibHVlcHJpbnQvYmxvYi9tYXN0ZXIvUEFURU5UU1xuICovXG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgeyBJbnRlbnQgfSBmcm9tIFwiLi9pbnRlbnRcIjtcbmltcG9ydCB7IHNoYWxsb3dDbG9uZSB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCB0eXBlIEhUTUxJbnB1dFByb3BzID0gUmVhY3QuSFRNTFByb3BzPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4vKipcbiAqIEEgc2hhcmVkIGJhc2UgaW50ZXJmYWNlIGZvciBhbGwgQmx1ZXByaW50IGNvbXBvbmVudCBwcm9wcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUHJvcHMge1xuICAgIC8qKiBBIHNwYWNlLWRlbGltaXRlZCBsaXN0IG9mIGNsYXNzIG5hbWVzIHRvIHBhc3MgYWxvbmcgdG8gYSBjaGlsZCBlbGVtZW50LiAqL1xuICAgIGNsYXNzTmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJSW50ZW50UHJvcHMge1xuICAgIC8qKiBWaXN1YWwgaW50ZW50IGNvbG9yIHRvIGFwcGx5IHRvIGVsZW1lbnQuICovXG4gICAgaW50ZW50PzogSW50ZW50O1xufVxuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgYSBjbGlja2FibGUgYWN0aW9uLCBzdWNoIGFzIGEgYnV0dG9uIG9yIG1lbnUgaXRlbS5cbiAqIFRoZXNlIHByb3BzIGNhbiBiZSBzcHJlYWR5IGRpcmVjdGx5IHRvIGEgYDxCdXR0b24+YCBvciBgPE1lbnVJdGVtPmAgZWxlbWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQWN0aW9uUHJvcHMgZXh0ZW5kcyBJSW50ZW50UHJvcHMsIElQcm9wcyB7XG4gICAgLyoqIFdoZXRoZXIgdGhpcyBhY3Rpb24gaXMgbm9uLWludGVyYWN0aXZlLiAqL1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcblxuICAgIC8qKiBOYW1lIG9mIGljb24gKHRoZSBwYXJ0IGFmdGVyIGBwdC1pY29uLWApIHRvIGFkZCB0byBidXR0b24uICovXG4gICAgaWNvbk5hbWU/OiBzdHJpbmc7XG5cbiAgICAvKiogQ2xpY2sgZXZlbnQgaGFuZGxlci4gKi9cbiAgICBvbkNsaWNrPzogKGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxFbGVtZW50PikgPT4gdm9pZDtcblxuICAgIC8qKiBBY3Rpb24gdGV4dCwgcmVxdWlyZWQgZm9yIHVzYWJpbGl0eS4gKi9cbiAgICB0ZXh0Pzogc3RyaW5nO1xufVxuXG4vKiogSW50ZXJmYWNlIGZvciBhIGxpbmssIHdpdGggc3VwcG9ydCBmb3IgY3VzdG9taXppbmcgdGFyZ2V0IHdpbmRvdy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUxpbmtQcm9wcyB7XG4gICAgLyoqIExpbmsgVVJMLiAqL1xuICAgIGhyZWY/OiBzdHJpbmc7XG5cbiAgICAvKiogTGluayB0YXJnZXQgYXR0cmlidXRlLiBVc2UgXCJfYmxhbmtcIiB0byBvcGVuIGluIGEgbmV3IHdpbmRvdy4gKi9cbiAgICB0YXJnZXQ/OiBzdHJpbmc7XG59XG5cbi8qKiBJbnRlcmZhY2UgZm9yIGEgY29udHJvbGxlZCBpbnB1dC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbnRyb2xsZWRQcm9wcyB7XG4gICAgLyoqIEluaXRpYWwgdmFsdWUgb2YgdGhlIGlucHV0LCBmb3IgdW5jb250cm9sbGVkIHVzYWdlLiAqL1xuICAgIGRlZmF1bHRWYWx1ZT86IHN0cmluZztcblxuICAgIC8qKiBDaGFuZ2UgZXZlbnQgaGFuZGxlci4gVXNlIGBldmVudC50YXJnZXQudmFsdWVgIGZvciBuZXcgdmFsdWUuICovXG4gICAgb25DaGFuZ2U/OiBSZWFjdC5Gb3JtRXZlbnRIYW5kbGVyPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKiBGb3JtIHZhbHVlIG9mIHRoZSBpbnB1dCwgZm9yIGNvbnRyb2xsZWQgdXNhZ2UuICovXG4gICAgdmFsdWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQW4gaW50ZXJmYWNlIGZvciBhbiBvcHRpb24gaW4gYSBsaXN0LCBzdWNoIGFzIGluIGEgYDxzZWxlY3Q+YCBvciBgUmFkaW9Hcm91cGAuXG4gKiBUaGVzZSBwcm9wcyBjYW4gYmUgc3ByZWFkIGRpcmVjdGx5IHRvIGFuIGA8b3B0aW9uPmAgb3IgYDxSYWRpbz5gIGVsZW1lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSU9wdGlvblByb3BzIGV4dGVuZHMgSVByb3BzIHtcbiAgICAvKiogV2hldGhlciB0aGlzIG9wdGlvbiBpcyBub24taW50ZXJhY3RpdmUuICovXG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuXG4gICAgLyoqIExhYmVsIHRleHQgZm9yIHRoaXMgb3B0aW9uLiAqL1xuICAgIGxhYmVsOiBzdHJpbmc7XG5cbiAgICAvKiogVmFsdWUgb2YgdGhpcyBvcHRpb24gKi9cbiAgICB2YWx1ZTogc3RyaW5nO1xufVxuXG4vKiogQSBjb2xsZWN0aW9uIG9mIGN1cmF0ZWQgcHJvcCBrZXlzIHVzZWQgYWNyb3NzIG91ciBDb21wb25lbnRzIHdoaWNoIGFyZSBub3QgdmFsaWQgSFRNTEVsZW1lbnQgcHJvcHMuICovXG5jb25zdCBJTlZBTElEX1BST1BTID0gW1xuICAgIFwiY29udGFpbmVyUmVmXCIsXG4gICAgXCJkZWZhdWx0SW5kZXRlcm1pbmF0ZVwiLFxuICAgIFwiZWxlbWVudFJlZlwiLFxuICAgIFwiaWNvbk5hbWVcIixcbiAgICBcImlucHV0UmVmXCIsXG4gICAgXCJpbnRlbnRcIixcbiAgICBcImxlZnRJY29uTmFtZVwiLFxuICAgIFwib25DaGlsZHJlbk1vdW50XCIsXG4gICAgXCJvblJlbW92ZVwiLFxuICAgIFwicmlnaHRFbGVtZW50XCIsXG4gICAgXCJyaWdodEljb25OYW1lXCIsXG4gICAgXCJ0ZXh0XCIsXG5dO1xuXG4vKipcbiAqIFR5cGljYWxseSBhcHBsaWVkIHRvIEhUTUxFbGVtZW50cyB0byBmaWx0ZXIgb3V0IGJsYWNrbGlzdGVkIHByb3BzLiBXaGVuIGFwcGxpZWQgdG8gYSBDb21wb25lbnQsXG4gKiBjYW4gZmlsdGVyIHByb3BzIGZyb20gYmVpbmcgcGFzc2VkIGRvd24gdG8gdGhlIGNoaWxkcmVuLiBDYW4gYWxzbyBmaWx0ZXIgYnkgYSBjb21iaW5lZCBsaXN0IG9mXG4gKiBzdXBwbGllZCBwcm9wIGtleXMgYW5kIHRoZSBibGFja2xpc3QgKG9ubHkgYXBwcm9wcmlhdGUgZm9yIEhUTUxFbGVtZW50cykuXG4gKiBAcGFyYW0gcHJvcHMgVGhlIG9yaWdpbmFsIHByb3BzIG9iamVjdCB0byBmaWx0ZXIgZG93bi5cbiAqIEBwYXJhbSB7c3RyaW5nW119IGludmFsaWRQcm9wcyBJZiBzdXBwbGllZCwgb3ZlcndyaXRlcyB0aGUgZGVmYXVsdCBibGFja2xpc3QuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHNob3VsZE1lcmdlIElmIHRydWUsIHdpbGwgbWVyZ2Ugc3VwcGxpZWQgaW52YWxpZFByb3BzIGFuZCBibGFja2xpc3QgdG9nZXRoZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVOb25IVE1MUHJvcHM8VCBleHRlbmRzIFUsIFU+KHByb3BzOiBULCBpbnZhbGlkUHJvcHMgPSBJTlZBTElEX1BST1BTLCBzaG91bGRNZXJnZSA9IGZhbHNlKTogVSB7XG4gICAgaWYgKHNob3VsZE1lcmdlKSB7XG4gICAgICAgIGludmFsaWRQcm9wcyA9IGludmFsaWRQcm9wcy5jb25jYXQoSU5WQUxJRF9QUk9QUyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGludmFsaWRQcm9wcy5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IHtcbiAgICAgICAgaWYgKHByZXYuaGFzT3duUHJvcGVydHkoY3VycikpIHtcbiAgICAgICAgICAgIGRlbGV0ZSAocHJldiBhcyBhbnkpW2N1cnJdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwcmV2O1xuICAgIH0sIHNoYWxsb3dDbG9uZShwcm9wcykpO1xufVxuIl0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9