{"version":3,"names":["Event","fileNameString","file","substring","lastIndexOf","humanizePosition","line","AExprRegistry","toValueString","pluralize","eventCounter","EventTypes","CREATED","DISPOSED","CHANGED","EVALFAIL","CBADDED","CBREMOVED","DEPCHANGED","REFINE","UNREFINE","LAYERCREATED","CUSTOM","constructor","ae","value","type","overrideTimestamp","undefined","timestamp","Date","overallID","valuePromise","Promise","resolve","then","resolvedValue","setAE","eventIDInAE","addEvent","id","meta","get","eventListeners","forEach","listener","callback","ensureResolved","typeName","isILA","getColor","valueString","extractLayererdFunctions","result","Map","event","events","functionMap","getOrCreate","obj","Object","keys","functions","key","set","function","debugInfo","layeredFunctionsString","layeredFunctions","values","reduce","p","c","size","humanizedData","triggers","map","location","start","lastValue","hook","informationString","error","name","message","added","length","removed","matching","toString","e"],"sources":["event.js"],"sourcesContent":["import { AExprRegistry } from 'src/client/reactive/active-expression/ae-registry.js';\nimport { toValueString } from 'src/client/reactive/components/basic/aexpr-debugging-utils.js';\nimport { pluralize } from 'utils'\n\nlet eventCounter = 0;\n\nexport const EventTypes = {\n  //AE\n  CREATED: \"created\",\n  DISPOSED: \"disposed\",\n  CHANGED: \"changed value\",\n  EVALFAIL: \"evaluation failed\",\n  CBADDED: \"callback added\",\n  CBREMOVED: \"callback removed\",\n  DEPCHANGED: \"dependencies changed\",\n  //ILA\n  REFINE: \"refine function\",\n  UNREFINE: \"unrefine function\",\n  LAYERCREATED: \"layer created\",\n  //CUSTON\n  CUSTOM: \"custom mark\",\n}\n\nfunction fileNameString(file) {\n  return file.substring(file.lastIndexOf('/') + 1);\n}\n\nfunction humanizePosition(file, line) {\n  return <div>in <span style=\"color:#0000FF\">{fileNameString(file)}</span> line <span style=\"color:#0000FF\">{line}</span></div>;\n}\n\nexport default class Event {\n  constructor(ae, value, type, overrideTimestamp = undefined) {\n    this.timestamp = overrideTimestamp || new Date();\n    this.overallID = eventCounter;\n    eventCounter++;\n        \n    this.type = type;\n    this.valuePromise = Promise.resolve(value).then(resolvedValue => {\n      this.value = resolvedValue;\n    });\n    this.setAE(ae);\n  }\n  \n  setAE(ae) {\n    if(!ae) return;\n    const eventIDInAE = ae.addEvent(this);\n    \n    this.id = ae.meta().get('id') + \"-\" + eventIDInAE;\n    this.ae = ae;\n    \n    this.valuePromise.then(() => {\n      AExprRegistry.eventListeners().forEach(listener => listener.callback(this.ae, this));\n    });\n  }\n  \n  async ensureResolved() {\n    await this.valuePromise;\n    return this;\n  }\n  \n  typeName() {\n    if(this.ae.isILA() && this.type === EventTypes.CHANGED) {\n      return this.value && this.value.value ? \"layer enabled\" : \"layer disabled\"\n    }\n    return this.type;\n  }\n  \n  getColor() {\n    switch(this.type) {\n      case EventTypes.CREATED:\n        return 'green';\n      case EventTypes.LAYERCREATED:\n        return 'lightgreen';\n      case EventTypes.DISPOSED:\n      case EventTypes.EVALFAIL:\n        return 'red';\n      case EventTypes.CHANGED:\n        return 'blue';\n      case EventTypes.CBADDED:\n      case EventTypes.REFINE:\n        return 'yellow';\n      case EventTypes.CBREMOVED:\n      case EventTypes.UNREFINE:\n        return 'purple';\n      case EventTypes.DEPCHANGED:\n        return 'orange';\n      case EventTypes.CUSTOM:\n        return 'gray';\n      default:\n        return 'black';\n    }\n  }\n  \n  valueString(value) {\n    if (value === undefined) {\n      if (this.value === undefined) {\n        value = undefined\n      } else {\n        value = this.value.value\n      }\n    }\n    if(this.ae.isILA()) return value ? \"on\" : \"off\";\n    return toValueString(value);\n  }\n  \n  extractLayererdFunctions() {\n    if(this.ae.isILA()) {\n      const result = new Map();\n      for(const event of this.ae.events) {\n        if(event === this) break;\n        if(event.type === EventTypes.REFINE) {\n          const functionMap = result.getOrCreate(event.value.obj, () => new Map());\n          Object.keys(event.value.functions).forEach(key => {\n            functionMap.set(key, {function: event.value.functions[key], debugInfo: event.value.debugInfo[key]});\n            \n          })\n        } else if(event.type === EventTypes.UNREFINE) {\n          result.set(event.value.obj, new Map());\n        }\n      }\n      //const layer = this.ae.getLayer();\n      return result;\n    }\n    return undefined;\n  }\n  \n  layeredFunctionsString() {\n    const layeredFunctions = this.extractLayererdFunctions();\n    if(!layeredFunctions) return \"\";\n    return <div><span style=\"color:#AA00AA\">{pluralize([...layeredFunctions.values()].reduce((p, c) => p += c.size, 0), \"active method\")}</span> in <span style=\"color:#AA00AA\">{pluralize(layeredFunctions.size, \"object\")}</span><br/></div>\n  }\n  \n  async humanizedData() {\n    try {\n      \n    switch (this.type) {\n      case EventTypes.CHANGED:\n        return <div>\n          {... this.value.triggers.map(({ location }) => humanizePosition(location.file, location.start.line))} \n          <br /> \n          <span style=\"color:#00AAAA\">{this.valueString(this.value.lastValue)}</span> → <span style=\"color:#00AAAA\">{this.valueString(this.value && this.value.value)}</span>\n          <br /> \n          {this.layeredFunctionsString()}\n          {this.value.triggers[0].hook.informationString()}\n        </div>;\n      //Todo: Join trigger hook informationString\n      case EventTypes.EVALFAIL:\n        return <div>\n          {this.value.triggers ? this.value.triggers.map(({ location }) => humanizePosition(location.file, location.start.line)) : \"\"} \n          <br /> \n          {this.value.error.name + \": \" + this.value.error.message}\n        </div>;\n      case EventTypes.CREATED:\n        {\n          const ae = this.ae;\n          /*const stack = this.value.stack;\n          const locations = await Promise.all(stack.frames.map(frame => frame.getSourceLoc()));\n          return locations.map(location => this.humanizePosition(location.source, location.line));*/\n          const location = ae.meta().get(\"location\");\n          return <div>\n            <span style=\"color:#00AAAA\">{this.valueString(this.value.lastValue)}</span>\n            {this.layeredFunctionsString()}\n            {humanizePosition(location.file, location.start.line)}\n          </div>\n        }\n      case EventTypes.DISPOSED:\n        {\n          const ae = this.value;\n          const location = ae.meta().get(\"location\");\n          return humanizePosition(location.file, location.start.line);\n        }\n      case EventTypes.DEPCHANGED:\n        {\n          return <div>\n              Added: {this.value.added.length}\n              Removed: {this.value.removed.length}\n              Matching: {this.value.matching.length}\n            </div>;\n        }\n      case EventTypes.CBADDED:\n      case EventTypes.CBREMOVED:\n      case EventTypes.REFINE:\n      case EventTypes.UNREFINE:\n      case EventTypes.LAYERCREATED:\n      case EventTypes.CUSTOM:\n      default:\n        return (this.value || \"\").toString();\n    }\n      \n      \n    } catch(e) {\n      // #TODO better guard against undefined this.value than this\n      debugger\n      return \"\"\n    }\n\n  }\n  \n  \n\n}"],"mappings":"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"}