@blueprintjs/core
Version:
Core styles & components
48 lines (46 loc) • 7.99 kB
JavaScript
/*
* 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
*/
;
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