(function (global, factory) {
    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular-ru/cdk/utils')) :
    typeof define === 'function' && define.amd ? define('@angular-ru/cdk/function', ['exports', '@angular-ru/cdk/utils'], factory) :
    (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global['angular-ru'] = global['angular-ru'] || {}, global['angular-ru'].cdk = global['angular-ru'].cdk || {}, global['angular-ru'].cdk.function = {}), global['angular-ru'].cdk.utils));
}(this, (function (exports, utils) { 'use strict';

    function $args(fn) {
        var _a, _b, _c;
        return ((_c = (_b = (_a = String(fn) // fast to string
            .replace(/[/][/].*$/gm, '') // strip single-line comments
            .replace(/\s+/g, '') // strip white space
            .replace(/[/][*][^/*]*[*][/]/g, '') // strip multi-line comments
            .split('){', 1)) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.replace(/^[^(]*[(]/, '').replace(/=[^,]+/g, '').split(',').filter(Boolean)) !== null && _c !== void 0 ? _c : []); // split & filter [""]
    }

    function hasConstructor(obj) {
        return utils.isNotNil(obj === null || obj === void 0 ? void 0 : obj.prototype) && utils.isNotNil(obj === null || obj === void 0 ? void 0 : obj.prototype.constructor.name);
    }

    function isFunctionLike(fn) {
        return typeof fn === 'function';
    }

    function typeofType(classType) {
        return function () { return classType; };
    }

    /**
     * Generated bundle index. Do not edit.
     */

    exports.$args = $args;
    exports.hasConstructor = hasConstructor;
    exports.isFunctionLike = isFunctionLike;
    exports.typeofType = typeofType;

    Object.defineProperty(exports, '__esModule', { value: true });

})));
//# sourceMappingURL=angular-ru-cdk-function.umd.js.map
