@rx-angular/cdk
Version:
@rx-angular/cdk is a Component Development Kit for ergonomic and highly performant angular applications. It helps to to build Large scale applications, UI libs, state management, rendering systems and much more. Furthermore the unique way of mixing reacti
1 lines • 29 kB
Source Map (JSON)
{"version":3,"file":"rx-angular-cdk-coalescing.mjs","sources":["../tmp-esm2022/coalescing/lib/coalescingManager.js","../tmp-esm2022/coalescing/lib/coalesceWith.js","../tmp-esm2022/coalescing/rx-angular-cdk-coalescing.js"],"sourcesContent":["export const coalescingManager = createCoalesceManager();\nfunction hasKey(ctx, property) {\n return ctx[property] != null;\n}\n/*\n * createPropertiesWeakMap\n *\n * @param getDefaults: (o: O) => P\n * Example:\n *\n * export interface Properties {\n * isCoalescing: boolean;\n * }\n *\n * const obj: object = {\n * foo: 'bar',\n * isCoalescing: 'weakMap version'\n * };\n *\n * const getDefaults = (ctx: object): Properties => ({isCoalescing: false});\n * const propsMap = createPropertiesWeakMap<object, Properties>(getDefaults);\n *\n * console.log('obj before:', obj);\n * // {foo: \"bar\", isCoalescing: \"weakMap version\"}\n * console.log('props before:', propsMap.getProps(obj));\n * // {isCoalescing: \"weakMap version\"}\n *\n * propsMap.setProps(obj, {isCoalescing: true});\n * console.log('obj after:', obj);\n * // {foo: \"bar\", isCoalescing: \"weakMap version\"}\n * console.log('props after:', propsMap.getProps(obj));\n * // {isCoalescing: \"true\"}\n * */\nfunction createPropertiesWeakMap(getDefaults) {\n const propertyMap = new WeakMap();\n return {\n getProps: getProperties,\n setProps: setProperties,\n };\n function getProperties(ctx) {\n const defaults = getDefaults(ctx);\n const propertiesPresent = propertyMap.get(ctx);\n let properties;\n if (propertiesPresent !== undefined) {\n properties = propertiesPresent;\n }\n else {\n properties = {};\n Object.entries(defaults).forEach(([prop, value]) => {\n if (hasKey(ctx, prop)) {\n properties[prop] = ctx[prop];\n }\n else {\n properties[prop] = value;\n }\n });\n propertyMap.set(ctx, properties);\n }\n return properties;\n }\n function setProperties(ctx, props) {\n const properties = getProperties(ctx);\n Object.entries(props).forEach(([prop, value]) => {\n properties[prop] = value;\n });\n propertyMap.set(ctx, properties);\n return properties;\n }\n}\nconst coalescingContextPropertiesMap = createPropertiesWeakMap((ctx) => ({\n numCoalescingSubscribers: 0,\n}));\n/**\n * @describe createCoalesceManager\n *\n * returns a\n * Maintains a weak map of component references ans flags\n * them if the coalescing process is already started for them.\n *\n * Used in render aware internally.\n */\nfunction createCoalesceManager() {\n return {\n remove: removeWork,\n add: addWork,\n isCoalescing,\n };\n // Increments the number of subscriptions in a scope e.g. a class instance\n function removeWork(scope) {\n const numCoalescingSubscribers = coalescingContextPropertiesMap.getProps(scope).numCoalescingSubscribers -\n 1;\n coalescingContextPropertiesMap.setProps(scope, {\n numCoalescingSubscribers: numCoalescingSubscribers >= 0 ? numCoalescingSubscribers : 0,\n });\n }\n // Decrements the number of subscriptions in a scope e.g. a class instance\n function addWork(scope) {\n const numCoalescingSubscribers = coalescingContextPropertiesMap.getProps(scope).numCoalescingSubscribers +\n 1;\n coalescingContextPropertiesMap.setProps(scope, {\n numCoalescingSubscribers,\n });\n }\n // Checks if anybody else is already coalescing atm\n function isCoalescing(scope) {\n return (coalescingContextPropertiesMap.getProps(scope).numCoalescingSubscribers >\n 0);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29hbGVzY2luZ01hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9jb2FsZXNjaW5nL3NyYy9saWIvY29hbGVzY2luZ01hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBVUEsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQXNCLHFCQUFxQixFQUFFLENBQUM7QUFHNUUsU0FBUyxNQUFNLENBQUksR0FBTSxFQUFFLFFBQWtCO0lBQzNDLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksQ0FBQztBQUMvQixDQUFDO0FBQ0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0E0Qks7QUFDTCxTQUFTLHVCQUF1QixDQUc5QixXQUF3QjtJQUV4QixNQUFNLFdBQVcsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRXhDLE9BQU87UUFDTCxRQUFRLEVBQUUsYUFBYTtRQUN2QixRQUFRLEVBQUUsYUFBYTtLQUN4QixDQUFDO0lBRUYsU0FBUyxhQUFhLENBQUMsR0FBTTtRQUMzQixNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEMsTUFBTSxpQkFBaUIsR0FBa0IsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5RCxJQUFJLFVBQWEsQ0FBQztRQUVsQixJQUFJLGlCQUFpQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3BDLFVBQVUsR0FBRyxpQkFBc0IsQ0FBQztRQUN0QyxDQUFDO2FBQU0sQ0FBQztZQUNOLFVBQVUsR0FBRyxFQUFPLENBQUM7WUFFcEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQWUsQ0FBQyxPQUFPLENBQzdDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUF5QixFQUFRLEVBQUU7Z0JBQzlDLElBQUksTUFBTSxDQUFDLEdBQVEsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO29CQUMzQixVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUksR0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN0QyxDQUFDO3FCQUFNLENBQUM7b0JBQ04sVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztnQkFDM0IsQ0FBQztZQUNILENBQUMsQ0FDRixDQUFDO1lBRUYsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxTQUFTLGFBQWEsQ0FBQyxHQUFNLEVBQUUsS0FBaUI7UUFDOUMsTUFBTSxVQUFVLEdBQU0sYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDL0QsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztRQUNILFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSw4QkFBOEIsR0FBRyx1QkFBdUIsQ0FHNUQsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDVix3QkFBd0IsRUFBRSxDQUFDO0NBQzVCLENBQUMsQ0FBQyxDQUFDO0FBQ0o7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLHFCQUFxQjtJQUM1QixPQUFPO1FBQ0wsTUFBTSxFQUFFLFVBQVU7UUFDbEIsR0FBRyxFQUFFLE9BQU87UUFDWixZQUFZO0tBQ2IsQ0FBQztJQUVGLDBFQUEwRTtJQUMxRSxTQUFTLFVBQVUsQ0FBQyxLQUE4QjtRQUNoRCxNQUFNLHdCQUF3QixHQUM1Qiw4QkFBOEIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsd0JBQXdCO1lBQ3ZFLENBQUMsQ0FBQztRQUNKLDhCQUE4QixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7WUFDN0Msd0JBQXdCLEVBQ3RCLHdCQUF3QixJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDL0QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELDBFQUEwRTtJQUMxRSxTQUFTLE9BQU8sQ0FBQyxLQUE4QjtRQUM3QyxNQUFNLHdCQUF3QixHQUM1Qiw4QkFBOEIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsd0JBQXdCO1lBQ3ZFLENBQUMsQ0FBQztRQUNKLDhCQUE4QixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUU7WUFDN0Msd0JBQXdCO1NBQ3pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxtREFBbUQ7SUFDbkQsU0FBUyxZQUFZLENBQUMsS0FBOEI7UUFDbEQsT0FBTyxDQUNMLDhCQUE4QixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyx3QkFBd0I7WUFDdkUsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImludGVyZmFjZSBDb2FsZXNjaW5nQ29udGV4dFByb3BzIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICBudW1Db2FsZXNjaW5nU3Vic2NyaWJlcnM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2FsZXNjaW5nTWFuYWdlciB7XG4gIHJlbW92ZTogKHNjb3BlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gdm9pZDtcbiAgYWRkOiAoc2NvcGU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB2b2lkO1xuICBpc0NvYWxlc2Npbmc6IChzY29wZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBjb2FsZXNjaW5nTWFuYWdlcjogQ29hbGVzY2luZ01hbmFnZXIgPSBjcmVhdGVDb2FsZXNjZU1hbmFnZXIoKTtcbnR5cGUgS2V5T2Y8Tz4gPSBrZXlvZiBPO1xudHlwZSBWYWx1ZU9mPE8+ID0gT1trZXlvZiBPXTtcbmZ1bmN0aW9uIGhhc0tleTxPPihjdHg6IE8sIHByb3BlcnR5OiBLZXlPZjxPPik6IGN0eCBpcyBPIHtcbiAgcmV0dXJuIGN0eFtwcm9wZXJ0eV0gIT0gbnVsbDtcbn1cbi8qXG4gKiBjcmVhdGVQcm9wZXJ0aWVzV2Vha01hcFxuICpcbiAqIEBwYXJhbSBnZXREZWZhdWx0czogKG86IE8pID0+IFBcbiAqIEV4YW1wbGU6XG4gKlxuICogZXhwb3J0IGludGVyZmFjZSBQcm9wZXJ0aWVzIHtcbiAqICAgaXNDb2FsZXNjaW5nOiBib29sZWFuO1xuICogfVxuICpcbiAqIGNvbnN0IG9iajogb2JqZWN0ID0ge1xuICogICBmb286ICdiYXInLFxuICogICBpc0NvYWxlc2Npbmc6ICd3ZWFrTWFwIHZlcnNpb24nXG4gKiB9O1xuICpcbiAqIGNvbnN0IGdldERlZmF1bHRzID0gKGN0eDogb2JqZWN0KTogUHJvcGVydGllcyA9PiAoe2lzQ29hbGVzY2luZzogZmFsc2V9KTtcbiAqIGNvbnN0IHByb3BzTWFwID0gY3JlYXRlUHJvcGVydGllc1dlYWtNYXA8b2JqZWN0LCBQcm9wZXJ0aWVzPihnZXREZWZhdWx0cyk7XG4gKlxuICogY29uc29sZS5sb2coJ29iaiBiZWZvcmU6Jywgb2JqKTtcbiAqIC8vIHtmb286IFwiYmFyXCIsIGlzQ29hbGVzY2luZzogXCJ3ZWFrTWFwIHZlcnNpb25cIn1cbiAqIGNvbnNvbGUubG9nKCdwcm9wcyBiZWZvcmU6JywgcHJvcHNNYXAuZ2V0UHJvcHMob2JqKSk7XG4gKiAvLyB7aXNDb2FsZXNjaW5nOiBcIndlYWtNYXAgdmVyc2lvblwifVxuICpcbiAqIHByb3BzTWFwLnNldFByb3BzKG9iaiwge2lzQ29hbGVzY2luZzogdHJ1ZX0pO1xuICogY29uc29sZS5sb2coJ29iaiBhZnRlcjonLCBvYmopO1xuICogLy8ge2ZvbzogXCJiYXJcIiwgaXNDb2FsZXNjaW5nOiBcIndlYWtNYXAgdmVyc2lvblwifVxuICogY29uc29sZS5sb2coJ3Byb3BzIGFmdGVyOicsIHByb3BzTWFwLmdldFByb3BzKG9iaikpO1xuICogLy8ge2lzQ29hbGVzY2luZzogXCJ0cnVlXCJ9XG4gKiAqL1xuZnVuY3Rpb24gY3JlYXRlUHJvcGVydGllc1dlYWtNYXA8XG4gIE8gZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgUCBleHRlbmRzIE9cbj4oZ2V0RGVmYXVsdHM6IChvOiBPKSA9PiBQKSB7XG4gIHR5cGUgSyA9IEtleU9mPFA+O1xuICBjb25zdCBwcm9wZXJ0eU1hcCA9IG5ldyBXZWFrTWFwPE8sIFA+KCk7XG5cbiAgcmV0dXJuIHtcbiAgICBnZXRQcm9wczogZ2V0UHJvcGVydGllcyxcbiAgICBzZXRQcm9wczogc2V0UHJvcGVydGllcyxcbiAgfTtcblxuICBmdW5jdGlvbiBnZXRQcm9wZXJ0aWVzKGN0eDogTyk6IFAge1xuICAgIGNvbnN0IGRlZmF1bHRzID0gZ2V0RGVmYXVsdHMoY3R4KTtcbiAgICBjb25zdCBwcm9wZXJ0aWVzUHJlc2VudDogUCB8IHVuZGVmaW5lZCA9IHByb3BlcnR5TWFwLmdldChjdHgpO1xuICAgIGxldCBwcm9wZXJ0aWVzOiBQO1xuXG4gICAgaWYgKHByb3BlcnRpZXNQcmVzZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzUHJlc2VudCBhcyBQO1xuICAgIH0gZWxzZSB7XG4gICAgICBwcm9wZXJ0aWVzID0ge30gYXMgUDtcblxuICAgICAgKE9iamVjdC5lbnRyaWVzKGRlZmF1bHRzKSBhcyB1bmtub3duW10pLmZvckVhY2goXG4gICAgICAgIChbcHJvcCwgdmFsdWVdOiBbS2V5T2Y8UD4sIFZhbHVlT2Y8UD5dKTogdm9pZCA9PiB7XG4gICAgICAgICAgaWYgKGhhc0tleShjdHggYXMgUCwgcHJvcCkpIHtcbiAgICAgICAgICAgIHByb3BlcnRpZXNbcHJvcF0gPSAoY3R4IGFzIFApW3Byb3BdO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcm9wZXJ0aWVzW3Byb3BdID0gdmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICBwcm9wZXJ0eU1hcC5zZXQoY3R4LCBwcm9wZXJ0aWVzKTtcbiAgICB9XG4gICAgcmV0dXJuIHByb3BlcnRpZXM7XG4gIH1cblxuICBmdW5jdGlvbiBzZXRQcm9wZXJ0aWVzKGN0eDogTywgcHJvcHM6IFBhcnRpYWw8UD4pOiBQIHtcbiAgICBjb25zdCBwcm9wZXJ0aWVzOiBQID0gZ2V0UHJvcGVydGllcyhjdHgpO1xuICAgIChPYmplY3QuZW50cmllcyhwcm9wcykgYXMgW0ssIFBbS11dW10pLmZvckVhY2goKFtwcm9wLCB2YWx1ZV0pID0+IHtcbiAgICAgIHByb3BlcnRpZXNbcHJvcF0gPSB2YWx1ZTtcbiAgICB9KTtcbiAgICBwcm9wZXJ0eU1hcC5zZXQoY3R4LCBwcm9wZXJ0aWVzKTtcbiAgICByZXR1cm4gcHJvcGVydGllcztcbiAgfVxufVxuXG5jb25zdCBjb2FsZXNjaW5nQ29udGV4dFByb3BlcnRpZXNNYXAgPSBjcmVhdGVQcm9wZXJ0aWVzV2Vha01hcDxcbiAgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIENvYWxlc2NpbmdDb250ZXh0UHJvcHNcbj4oKGN0eCkgPT4gKHtcbiAgbnVtQ29hbGVzY2luZ1N1YnNjcmliZXJzOiAwLFxufSkpO1xuLyoqXG4gKiBAZGVzY3JpYmUgY3JlYXRlQ29hbGVzY2VNYW5hZ2VyXG4gKlxuICogcmV0dXJucyBhXG4gKiBNYWludGFpbnMgYSB3ZWFrIG1hcCBvZiBjb21wb25lbnQgcmVmZXJlbmNlcyBhbnMgZmxhZ3NcbiAqIHRoZW0gaWYgdGhlIGNvYWxlc2NpbmcgcHJvY2VzcyBpcyBhbHJlYWR5IHN0YXJ0ZWQgZm9yIHRoZW0uXG4gKlxuICogVXNlZCBpbiByZW5kZXIgYXdhcmUgaW50ZXJuYWxseS5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlQ29hbGVzY2VNYW5hZ2VyKCk6IENvYWxlc2NpbmdNYW5hZ2VyIHtcbiAgcmV0dXJuIHtcbiAgICByZW1vdmU6IHJlbW92ZVdvcmssXG4gICAgYWRkOiBhZGRXb3JrLFxuICAgIGlzQ29hbGVzY2luZyxcbiAgfTtcblxuICAvLyBJbmNyZW1lbnRzIHRoZSBudW1iZXIgb2Ygc3Vic2NyaXB0aW9ucyBpbiBhIHNjb3BlIGUuZy4gYSBjbGFzcyBpbnN0YW5jZVxuICBmdW5jdGlvbiByZW1vdmVXb3JrKHNjb3BlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHZvaWQge1xuICAgIGNvbnN0IG51bUNvYWxlc2NpbmdTdWJzY3JpYmVycyA9XG4gICAgICBjb2FsZXNjaW5nQ29udGV4dFByb3BlcnRpZXNNYXAuZ2V0UHJvcHMoc2NvcGUpLm51bUNvYWxlc2NpbmdTdWJzY3JpYmVycyAtXG4gICAgICAxO1xuICAgIGNvYWxlc2NpbmdDb250ZXh0UHJvcGVydGllc01hcC5zZXRQcm9wcyhzY29wZSwge1xuICAgICAgbnVtQ29hbGVzY2luZ1N1YnNjcmliZXJzOlxuICAgICAgICBudW1Db2FsZXNjaW5nU3Vic2NyaWJlcnMgPj0gMCA/IG51bUNvYWxlc2NpbmdTdWJzY3JpYmVycyA6IDAsXG4gICAgfSk7XG4gIH1cblxuICAvLyBEZWNyZW1lbnRzIHRoZSBudW1iZXIgb2Ygc3Vic2NyaXB0aW9ucyBpbiBhIHNjb3BlIGUuZy4gYSBjbGFzcyBpbnN0YW5jZVxuICBmdW5jdGlvbiBhZGRXb3JrKHNjb3BlOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHZvaWQge1xuICAgIGNvbnN0IG51bUNvYWxlc2NpbmdTdWJzY3JpYmVycyA9XG4gICAgICBjb2FsZXNjaW5nQ29udGV4dFByb3BlcnRpZXNNYXAuZ2V0UHJvcHMoc2NvcGUpLm51bUNvYWxlc2NpbmdTdWJzY3JpYmVycyArXG4gICAgICAxO1xuICAgIGNvYWxlc2NpbmdDb250ZXh0UHJvcGVydGllc01hcC5zZXRQcm9wcyhzY29wZSwge1xuICAgICAgbnVtQ29hbGVzY2luZ1N1YnNjcmliZXJzLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gQ2hlY2tzIGlmIGFueWJvZHkgZWxzZSBpcyBhbHJlYWR5IGNvYWxlc2NpbmcgYXRtXG4gIGZ1bmN0aW9uIGlzQ29hbGVzY2luZyhzY29wZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgY29hbGVzY2luZ0NvbnRleHRQcm9wZXJ0aWVzTWFwLmdldFByb3BzKHNjb3BlKS5udW1Db2FsZXNjaW5nU3Vic2NyaWJlcnMgPlxuICAgICAgMFxuICAgICk7XG4gIH1cbn1cbiJdfQ==","import { Observable, Subscription, } from 'rxjs';\nimport { coalescingManager } from './coalescingManager';\n/**\n * @description\n * Limits the number of synchronous emitted a value from the source Observable to\n * one emitted value per\n * durationSelector e.g. [`AnimationFrame`](https://developer.mozilla.org/en-US/docs/Web/API/Window/requestAnimationFrame), then repeats\n * this process for every tick of the browsers event loop.\n *\n * The coalesce operator is based on the [throttle](https://rxjs-dev.firebaseapp.com/api/operators/throttle) operator.\n * In addition to that is provides emitted values for the trailing end only, as well as maintaining a context to scope\n * coalescing.\n *\n * @param {function(value: T): Observable} durationSelector - A function\n * that receives a value from the source Observable, for computing the silencing\n * duration for each source value, returned as an Observable or a Promise.\n * It defaults to `requestAnimationFrame` as durationSelector.\n * @param scope\n * Defaults to `{ leading: false, trailing: true }`. The default scoping is per subscriber.\n * @return {Observable<T>} An Observable that performs the coalesce operation to\n * limit the rate of emissions from the source.\n *\n * @usageNotes\n * Emit clicks at a rate of at most one click per second\n * ```typescript\n * import { interval, fromEvent } from 'rxjs';\n * import { coalesceWith } from '@rx-angular/cdk/coalescing';\n *\n * const setTimeoutDurationSelector = interval(500);\n * const clicks = fromEvent(document, 'click');\n * const result = clicks.pipe(coalesceWith(setTimeoutDurationSelector));\n * result.subscribe(x => console.log(x));\n * ```\n */\nexport function coalesceWith(durationSelector, scope) {\n const _scope = scope || {};\n return (source) => {\n return new Observable((observer) => {\n const rootSubscription = new Subscription();\n rootSubscription.add(source.subscribe(createInnerObserver(observer, rootSubscription)));\n return rootSubscription;\n });\n function createInnerObserver(outerObserver, rootSubscription) {\n let actionSubscription;\n let latestValue;\n const tryEmitLatestValue = () => {\n if (actionSubscription) {\n // We only decrement the number if it is greater than 0 (isCoalescing)\n coalescingManager.remove(_scope);\n if (!coalescingManager.isCoalescing(_scope)) {\n outerObserver.next(latestValue);\n }\n }\n };\n return {\n complete: () => {\n tryEmitLatestValue();\n outerObserver.complete();\n },\n error: (error) => outerObserver.error(error),\n next: (value) => {\n latestValue = value;\n if (!actionSubscription) {\n coalescingManager.add(_scope);\n actionSubscription = durationSelector.subscribe({\n error: (error) => outerObserver.error(error),\n next: () => {\n tryEmitLatestValue();\n actionSubscription?.unsubscribe();\n actionSubscription = undefined;\n },\n complete: () => {\n tryEmitLatestValue();\n actionSubscription = undefined;\n },\n });\n rootSubscription.add(new Subscription(() => {\n tryEmitLatestValue();\n actionSubscription?.unsubscribe();\n actionSubscription = undefined;\n }));\n }\n },\n };\n }\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29hbGVzY2VXaXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvY29hbGVzY2luZy9zcmMvbGliL2NvYWxlc2NlV2l0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsVUFBVSxFQUdWLFlBQVksR0FFYixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FDMUIsZ0JBQXFDLEVBQ3JDLEtBQStCO0lBRS9CLE1BQU0sTUFBTSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7SUFFM0IsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFO1FBQ2hCLE9BQU8sSUFBSSxVQUFVLENBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNwQyxNQUFNLGdCQUFnQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7WUFDNUMsZ0JBQWdCLENBQUMsR0FBRyxDQUNsQixNQUFNLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQ2xFLENBQUM7WUFDRixPQUFPLGdCQUFnQixDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO1FBRUgsU0FBUyxtQkFBbUIsQ0FDMUIsYUFBNEIsRUFDNUIsZ0JBQThCO1lBRTlCLElBQUksa0JBQWtDLENBQUM7WUFDdkMsSUFBSSxXQUEwQixDQUFDO1lBRS9CLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxFQUFFO2dCQUM5QixJQUFJLGtCQUFrQixFQUFFLENBQUM7b0JBQ3ZCLHNFQUFzRTtvQkFDdEUsaUJBQWlCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7d0JBQzVDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQ2xDLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUMsQ0FBQztZQUNGLE9BQU87Z0JBQ0wsUUFBUSxFQUFFLEdBQUcsRUFBRTtvQkFDYixrQkFBa0IsRUFBRSxDQUFDO29CQUNyQixhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQzNCLENBQUM7Z0JBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDNUMsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ2QsV0FBVyxHQUFHLEtBQUssQ0FBQztvQkFDcEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7d0JBQ3hCLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDOUIsa0JBQWtCLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDOzRCQUM5QyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDOzRCQUM1QyxJQUFJLEVBQUUsR0FBRyxFQUFFO2dDQUNULGtCQUFrQixFQUFFLENBQUM7Z0NBQ3JCLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxDQUFDO2dDQUNsQyxrQkFBa0IsR0FBRyxTQUFTLENBQUM7NEJBQ2pDLENBQUM7NEJBQ0QsUUFBUSxFQUFFLEdBQUcsRUFBRTtnQ0FDYixrQkFBa0IsRUFBRSxDQUFDO2dDQUNyQixrQkFBa0IsR0FBRyxTQUFTLENBQUM7NEJBQ2pDLENBQUM7eUJBQ0YsQ0FBQyxDQUFDO3dCQUNILGdCQUFnQixDQUFDLEdBQUcsQ0FDbEIsSUFBSSxZQUFZLENBQUMsR0FBRyxFQUFFOzRCQUNwQixrQkFBa0IsRUFBRSxDQUFDOzRCQUNyQixrQkFBa0IsRUFBRSxXQUFXLEVBQUUsQ0FBQzs0QkFDbEMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDO3dCQUNqQyxDQUFDLENBQUMsQ0FDSCxDQUFDO29CQUNKLENBQUM7Z0JBQ0gsQ0FBQzthQUNGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbixcbiAgT2JzZXJ2YWJsZSxcbiAgT2JzZXJ2ZXIsXG4gIFN1YnNjcmliZXIsXG4gIFN1YnNjcmlwdGlvbixcbiAgVW5zdWJzY3JpYmFibGUsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY29hbGVzY2luZ01hbmFnZXIgfSBmcm9tICcuL2NvYWxlc2NpbmdNYW5hZ2VyJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqIExpbWl0cyB0aGUgbnVtYmVyIG9mIHN5bmNocm9ub3VzIGVtaXR0ZWQgYSB2YWx1ZSBmcm9tIHRoZSBzb3VyY2UgT2JzZXJ2YWJsZSB0b1xuICogb25lIGVtaXR0ZWQgdmFsdWUgcGVyXG4gKiAgIGR1cmF0aW9uU2VsZWN0b3IgZS5nLiBbYEFuaW1hdGlvbkZyYW1lYF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1dpbmRvdy9yZXF1ZXN0QW5pbWF0aW9uRnJhbWUpLCB0aGVuIHJlcGVhdHNcbiAqIHRoaXMgcHJvY2VzcyBmb3IgZXZlcnkgdGljayBvZiB0aGUgYnJvd3NlcnMgZXZlbnQgbG9vcC5cbiAqXG4gKiBUaGUgY29hbGVzY2Ugb3BlcmF0b3IgaXMgYmFzZWQgb24gdGhlIFt0aHJvdHRsZV0oaHR0cHM6Ly9yeGpzLWRldi5maXJlYmFzZWFwcC5jb20vYXBpL29wZXJhdG9ycy90aHJvdHRsZSkgb3BlcmF0b3IuXG4gKiBJbiBhZGRpdGlvbiB0byB0aGF0IGlzIHByb3ZpZGVzIGVtaXR0ZWQgdmFsdWVzIGZvciB0aGUgdHJhaWxpbmcgZW5kIG9ubHksIGFzIHdlbGwgYXMgbWFpbnRhaW5pbmcgYSBjb250ZXh0IHRvIHNjb3BlXG4gKiAgIGNvYWxlc2NpbmcuXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbih2YWx1ZTogVCk6IE9ic2VydmFibGV9IGR1cmF0aW9uU2VsZWN0b3IgLSBBIGZ1bmN0aW9uXG4gKiB0aGF0IHJlY2VpdmVzIGEgdmFsdWUgZnJvbSB0aGUgc291cmNlIE9ic2VydmFibGUsIGZvciBjb21wdXRpbmcgdGhlIHNpbGVuY2luZ1xuICogZHVyYXRpb24gZm9yIGVhY2ggc291cmNlIHZhbHVlLCByZXR1cm5lZCBhcyBhbiBPYnNlcnZhYmxlIG9yIGEgUHJvbWlzZS5cbiAqIEl0IGRlZmF1bHRzIHRvIGByZXF1ZXN0QW5pbWF0aW9uRnJhbWVgIGFzIGR1cmF0aW9uU2VsZWN0b3IuXG4gKiBAcGFyYW0gc2NvcGVcbiAqIERlZmF1bHRzIHRvIGB7IGxlYWRpbmc6IGZhbHNlLCB0cmFpbGluZzogdHJ1ZSB9YC4gVGhlIGRlZmF1bHQgc2NvcGluZyBpcyBwZXIgc3Vic2NyaWJlci5cbiAqIEByZXR1cm4ge09ic2VydmFibGU8VD59IEFuIE9ic2VydmFibGUgdGhhdCBwZXJmb3JtcyB0aGUgY29hbGVzY2Ugb3BlcmF0aW9uIHRvXG4gKiBsaW1pdCB0aGUgcmF0ZSBvZiBlbWlzc2lvbnMgZnJvbSB0aGUgc291cmNlLlxuICpcbiAqIEB1c2FnZU5vdGVzXG4gKiBFbWl0IGNsaWNrcyBhdCBhIHJhdGUgb2YgYXQgbW9zdCBvbmUgY2xpY2sgcGVyIHNlY29uZFxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgaW50ZXJ2YWwsIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuICogaW1wb3J0IHsgY29hbGVzY2VXaXRoIH0gZnJvbSAnQHJ4LWFuZ3VsYXIvY2RrL2NvYWxlc2NpbmcnO1xuICpcbiAqIGNvbnN0IHNldFRpbWVvdXREdXJhdGlvblNlbGVjdG9yID0gaW50ZXJ2YWwoNTAwKTtcbiAqIGNvbnN0IGNsaWNrcyA9IGZyb21FdmVudChkb2N1bWVudCwgJ2NsaWNrJyk7XG4gKiBjb25zdCByZXN1bHQgPSBjbGlja3MucGlwZShjb2FsZXNjZVdpdGgoc2V0VGltZW91dER1cmF0aW9uU2VsZWN0b3IpKTtcbiAqIHJlc3VsdC5zdWJzY3JpYmUoeCA9PiBjb25zb2xlLmxvZyh4KSk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvYWxlc2NlV2l0aDxUPihcbiAgZHVyYXRpb25TZWxlY3RvcjogT2JzZXJ2YWJsZTx1bmtub3duPixcbiAgc2NvcGU/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHtcbiAgY29uc3QgX3Njb3BlID0gc2NvcGUgfHwge307XG5cbiAgcmV0dXJuIChzb3VyY2UpID0+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8VD4oKG9ic2VydmVyKSA9PiB7XG4gICAgICBjb25zdCByb290U3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgICAgcm9vdFN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgIHNvdXJjZS5zdWJzY3JpYmUoY3JlYXRlSW5uZXJPYnNlcnZlcihvYnNlcnZlciwgcm9vdFN1YnNjcmlwdGlvbikpXG4gICAgICApO1xuICAgICAgcmV0dXJuIHJvb3RTdWJzY3JpcHRpb247XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVJbm5lck9ic2VydmVyKFxuICAgICAgb3V0ZXJPYnNlcnZlcjogU3Vic2NyaWJlcjxUPixcbiAgICAgIHJvb3RTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvblxuICAgICk6IE9ic2VydmVyPFQ+IHtcbiAgICAgIGxldCBhY3Rpb25TdWJzY3JpcHRpb246IFVuc3Vic2NyaWJhYmxlO1xuICAgICAgbGV0IGxhdGVzdFZhbHVlOiBUIHwgdW5kZWZpbmVkO1xuXG4gICAgICBjb25zdCB0cnlFbWl0TGF0ZXN0VmFsdWUgPSAoKSA9PiB7XG4gICAgICAgIGlmIChhY3Rpb25TdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAvLyBXZSBvbmx5IGRlY3JlbWVudCB0aGUgbnVtYmVyIGlmIGl0IGlzIGdyZWF0ZXIgdGhhbiAwIChpc0NvYWxlc2NpbmcpXG4gICAgICAgICAgY29hbGVzY2luZ01hbmFnZXIucmVtb3ZlKF9zY29wZSk7XG4gICAgICAgICAgaWYgKCFjb2FsZXNjaW5nTWFuYWdlci5pc0NvYWxlc2NpbmcoX3Njb3BlKSkge1xuICAgICAgICAgICAgb3V0ZXJPYnNlcnZlci5uZXh0KGxhdGVzdFZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICAgIHRyeUVtaXRMYXRlc3RWYWx1ZSgpO1xuICAgICAgICAgIG91dGVyT2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4gb3V0ZXJPYnNlcnZlci5lcnJvcihlcnJvciksXG4gICAgICAgIG5leHQ6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGxhdGVzdFZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgaWYgKCFhY3Rpb25TdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIGNvYWxlc2NpbmdNYW5hZ2VyLmFkZChfc2NvcGUpO1xuICAgICAgICAgICAgYWN0aW9uU3Vic2NyaXB0aW9uID0gZHVyYXRpb25TZWxlY3Rvci5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiBvdXRlck9ic2VydmVyLmVycm9yKGVycm9yKSxcbiAgICAgICAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRyeUVtaXRMYXRlc3RWYWx1ZSgpO1xuICAgICAgICAgICAgICAgIGFjdGlvblN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICBhY3Rpb25TdWJzY3JpcHRpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdHJ5RW1pdExhdGVzdFZhbHVlKCk7XG4gICAgICAgICAgICAgICAgYWN0aW9uU3Vic2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByb290U3Vic2NyaXB0aW9uLmFkZChcbiAgICAgICAgICAgICAgbmV3IFN1YnNjcmlwdGlvbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdHJ5RW1pdExhdGVzdFZhbHVlKCk7XG4gICAgICAgICAgICAgICAgYWN0aW9uU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIGFjdGlvblN1YnNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gIH07XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicngtYW5ndWxhci1jZGstY29hbGVzY2luZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL2NvYWxlc2Npbmcvc3JjL3J4LWFuZ3VsYXItY2RrLWNvYWxlc2NpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}