{"version":3,"sources":["jsdelivr-header.js","/npm/@alaboudi/react-observable@1.0.0-alpha.8/dist/index.cjs.js"],"names":[],"mappings":"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","file":"/npm/@alaboudi/react-observable@1.0.0-alpha.8/dist/index.cjs.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@alaboudi/react-observable@1.0.0-alpha.8/dist/index.cjs.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar react = require('react');\nvar rxjs = require('rxjs');\n\nvar areInputsEqual = function (newInputs, oldInputs) {\r\n    if (newInputs.length !== oldInputs.length) {\r\n        return false;\r\n    }\r\n    for (var i = 0; i < newInputs.length; i++) {\r\n        if (newInputs[i] !== oldInputs[i]) {\r\n            return false;\r\n        }\r\n    }\r\n    return true;\r\n};\r\nfunction memoizeOne(resultFn) {\r\n    var lastThis;\r\n    var lastArgs = [];\r\n    var lastResult;\r\n    var calledOnce = false;\r\n    // breaking cache when context (this) or arguments change\r\n    function memoized() {\r\n        var newArgs = [];\r\n        for (var _i = 0; _i < arguments.length; _i++) {\r\n            newArgs[_i] = arguments[_i];\r\n        }\r\n        if (calledOnce && lastThis === this && areInputsEqual(newArgs, lastArgs)) {\r\n            return lastResult;\r\n        }\r\n        // Throwing during an assignment aborts the assignment: https://codepen.io/alexreardon/pen/RYKoaz\r\n        // Doing the lastResult assignment first so that if it throws\r\n        // nothing will be overwritten\r\n        lastResult = resultFn.apply(this, newArgs);\r\n        calledOnce = true;\r\n        lastThis = this;\r\n        lastArgs = newArgs;\r\n        return lastResult;\r\n    }\r\n    return memoized;\r\n}\n\nvar getLastSyncEmission = function (source$) {\r\n    var value;\r\n    var subscription = source$.subscribe(function (v) { return value = v; });\r\n    subscription.unsubscribe();\r\n    return value;\r\n};\n\nfunction survivableShare(survivalCount) {\r\n    var subject;\r\n    var refCount = 0;\r\n    var deathCount = 0;\r\n    var subscription;\r\n    return function (source$) { return new rxjs.Observable(function (observer) {\r\n        refCount++;\r\n        var innerSubscription;\r\n        if (!subscription) {\r\n            subject = new rxjs.Subject();\r\n            innerSubscription = subject.subscribe(observer);\r\n            subscription = source$.subscribe({\r\n                next: function (value) { subject.next(value); },\r\n                error: function (err) { subject.error(err); },\r\n                complete: function () { subject.complete(); }\r\n            });\r\n        }\r\n        else {\r\n            innerSubscription = subject.subscribe(observer);\r\n        }\r\n        return function teardown() {\r\n            refCount--;\r\n            innerSubscription.unsubscribe();\r\n            if (refCount === 0) {\r\n                deathCount++;\r\n                if (deathCount > survivalCount) {\r\n                    subscription.unsubscribe();\r\n                    deathCount = 0;\r\n                    subscription = undefined;\r\n                    subject = undefined;\r\n                }\r\n            }\r\n        };\r\n    }); };\r\n}\n\nvar resolveInitialValue = function (source$, operatorFunction, initialValue) {\r\n    var enhancedSource$ = operatorFunction(source$);\r\n    var lastSyncEmission = getLastSyncEmission(enhancedSource$);\r\n    return lastSyncEmission === undefined ? initialValue : lastSyncEmission;\r\n};\r\nvar useObservable = function (source$, initialValue) {\r\n    var operatorFunction = react.useState(function () { return memoizeOne(survivableShare(1)); })[0];\r\n    var _a = react.useState(function () { return resolveInitialValue(source$, operatorFunction, initialValue); }), emittedValue = _a[0], setEmittedValue = _a[1];\r\n    react.useEffect(function () {\r\n        var enhancedSource$ = operatorFunction(source$);\r\n        var subscription = enhancedSource$.subscribe(setEmittedValue);\r\n        return function () { return subscription.unsubscribe(); };\r\n    }, [source$, setEmittedValue, operatorFunction]);\r\n    return emittedValue;\r\n};\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    };\r\n    return __assign.apply(this, arguments);\r\n};\n\nvar resolveInitialValue$1 = function (source$, initialValue) {\r\n    var lastSyncEmission = getLastSyncEmission(source$);\r\n    return typeof lastSyncEmission === 'undefined' ? initialValue : lastSyncEmission;\r\n};\r\nvar withObservable = function (propName, source$, initialValue) { return function (BaseComponent) {\r\n    var factory = react.createFactory(BaseComponent);\r\n    var enhancedSource$ = source$.pipe(survivableShare(1));\r\n    return /** @class */ (function (_super) {\r\n        __extends(class_1, _super);\r\n        function class_1(props) {\r\n            var _this = _super.call(this, props) || this;\r\n            _this.state = { emittedValue: resolveInitialValue$1(enhancedSource$, initialValue) };\r\n            return _this;\r\n        }\r\n        class_1.prototype.setObservableValue = function (val) {\r\n            this.setState({ emittedValue: val });\r\n        };\r\n        class_1.prototype.componentDidMount = function () {\r\n            this.subscription = enhancedSource$\r\n                .subscribe(this.setObservableValue);\r\n        };\r\n        class_1.prototype.componentWillUnmount = function () {\r\n            var _a;\r\n            (_a = this.subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();\r\n        };\r\n        class_1.prototype.render = function () {\r\n            var _a;\r\n            return factory(__assign(__assign({}, this.props), (_a = {}, _a[propName] = this.state.emittedValue, _a)));\r\n        };\r\n        return class_1;\r\n    }(react.Component));\r\n}; };\n\nexports.useObservable = useObservable;\nexports.withObservable = withObservable;\n"]}