{"version":3,"names":["TickingActiveExpression","__SystemJSRewritingHack","TICKING_INSTANCES","setExpressionOptionsForConventionStrategies","func","options","rest","Object","assign","checkImmediately","aexpr","args","check","iterable","forEach","checkAndNotify","clearDefaultActiveExpressions","clear","_export","setters","_activeExpression","BaseActiveExpression","execute","_recorder_","_src_client_reactive_active_expression_convention_active_expression_ticking_js","defineProperty","get","set","thisIsVererySecretVariableName","enumerable","configurable","Set","constructor","add","new","target","addToRegistry","revoke","removeListeners","dispose","delete","disable2","disable","enable2","enable","setExpression","params"],"sources":["active-expression-ticking.js"],"sourcesContent":["import { BaseActiveExpression } from 'active-expression';\n\nconst TICKING_INSTANCES = new Set();\n\nexport function setExpressionOptionsForConventionStrategies(func, options = {}, ...rest) {\n  return [func, Object.assign({\n    checkImmediately: false\n  }, options), ...rest];\n}\n\nexport class TickingActiveExpression extends BaseActiveExpression {\n\n    // each implementation strategy ensures to track changes of the given expression\n    // in the case of ticking, we add the aexpr to a collection of tracked aexpr\n    // which enables them to recognize changes (here, explicitly through the `check` method)\n    constructor(func, ...args) {\n        super(func, ...args);\n        TICKING_INSTANCES.add(this);\n\n        if(new.target === TickingActiveExpression) {\n            this.addToRegistry();\n        }\n    }\n\n    // TODO: refactor/extractMethod with InterpreterActiveExpression\n    revoke() {\n        this.removeListeners();\n    }\n\n    dispose() {\n      TICKING_INSTANCES.delete(this);\n      super.dispose();\n    }\n  \n    disable2(...args) {\n      return super.disable(...args)\n    }\n\n    enable2(...args) {\n      return super.enable(...args)\n    }\n  \n    disable(...args) {\n      super.disable(...args)\n      return this;\n    }\n\n    enable(...args) {\n      super.enable(...args)\n      return this;\n    }\n  \n  /** the parameter `checkImmediately` is by default false for convention strategies */\n  setExpression(...params) {\n    return super.setExpression(...setExpressionOptionsForConventionStrategies(...params))\n  }\n}\n\nexport function aexpr(func, ...args) { return new TickingActiveExpression(func, ...args); }\n\n// TODO: the concrete semantic of enabled and disabled aexprs are not clear yet.\n// Instead, they are related to this concrete implementation.\n// For example, what happens if a disabled aexpr is re-enabled AND the value of the aexpr\n// has already changed? Should the callback be invoked with the new value and the lastValue\n// before the disabling? or with the actual last value? Or should it not be invoked until\n// something changes? If so, what is the last value? Or should aexprs simply not be able to be\n// re-enabled again? Or should they not even be disable-able; then, it would be the duty of\n// the callback/a built-upon concept to implement thiese functionalities appropriately\nexport function check(iterable = TICKING_INSTANCES) {\n    iterable.forEach(aexpr => aexpr.checkAndNotify());\n}\n\n// Remove all active expressions of this type from the system\n// afterward active expressions are only reachable by providing them explicitly in an iterable to `check`\n// Caution: Do not use this function unless you know what you are doing!\nexport function clearDefaultActiveExpressions() {\n    TICKING_INSTANCES.clear();\n}\n"],"mappings":"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"}